Augmented Reality Shopping Displays

ABSTRACT

Concepts and technologies are disclosed herein for providing augmented reality shopping displays. A processor can execute a shopping service. The processor can receive a request for display data. The processor can analyze shopping data to identify data sources, the shopping data can include user data associated with the requestor, and the data sources can include an offer source. The processor can obtain collected data from the data sources identified, the collected data including an offer. The processor can generate display data based upon the collected data and the shopping data, and provide the display data to a user device. The display data can identify the offer.

BACKGROUND

Over the past several years, the average mobile device used by consumershas evolved from a simple feature phone that may support only basic talkand text features into an advanced Internet-capable device that mayalmost always be connected to the Internet. Over the same time, theshopping experience for most consumers has remained somewhat consistent.Although some modern consumers may use mobile devices to check pricesfor products or to find information relating to products, these types ofactivities may sometimes be frowned upon by retail location personnel.In particular, shoppers may scan items to find a better price online,thereby placing retail locations at a disadvantage. As such, someretailers may not encourage users to interact with mobile devices duringshopping expeditions.

Some modern consumers may use mobile devices to track shopping lists.While these consumers may rely on electronic shopping list solutions,these shopping list solutions may be lacking in various ways. First,consumers must create the lists ahead of time and therefore theelectronic shopping lists may differ from traditional pen-and-papershopping lists only with regard to preventing waste. Second, consumersmust remember to view the list in the store or other retail location totake advantage of the electronic list. Still further, consumers may wantto check prices associated with items on a shopping list. Doing so,however, may require the consumers to exit the shopping list applicationto access prices check functionality. This can be time consuming andfrustrating for some consumers.

Consumers sometimes may look for bargains at home, in publishedcirculars, or in-store by obtaining coupon offers and/or searching theshelves for coupons or other promotional offers. When shopping, theseconsumers may be required to navigate the store to find bargains listedin these sources. Furthermore, consumers may not recognize deals orbargains based upon where the items are located. For example, an item onsale may be located in a special promotion area, while theregularly-priced items may be located elsewhere. As a result, a consumermay not be aware of the promotion and therefore may forego a purchase ata particular time or obtain the item elsewhere.

SUMMARY

The present disclosure is directed to generating and providing augmentedreality shopping displays. According to some embodiments of the conceptsand technologies described herein, a server computer can execute ashopping service and a user device can execute a shopping application.In some other embodiments, one of the user device and/or the servercomputer can execute functionality associated with both the shoppingapplication and the shopping service. According to various embodimentsof the concepts and technologies described herein, a shopping list canbe created. In some instances, the shopping list can be created atand/or accessed by the user device, though this is not necessarily thecase.

The user device may be used during shopping. For example, the userdevice may be used to scan items to obtain information relating toproducts, to perform searches, to purchase items, to navigate through astore, combinations thereof, or the like. The shopping application canprovide these and other functions, as well as the functionalityillustrated and described herein for creating a shopping list and/orshopping for items or services on the shopping list.

According to some embodiments, the user device can generate user data,which can be used to provide the functionality illustrated and describedherein. The user data can include object data. The object data canrelate to one or more items, products, services, or the like that may beinteracted with during a shopping outing. The user data also can includeone or more preferences associated with the shopping application and/ora shopping service. The user data also can include shopping list data,which can relate to a shopping list and/or shopping list items. Forexample, the shopping list data can identify one or more objects, or thelike. The user data also can include compatibility data. Thecompatibility data can relate to the user, the user device, a vehicle,an office, a home, a room, or the like, and can indicate whether or nota particular item is compatible with indicated user preferences orneeds. The user data also can include orientation data. The orientationdata can define an orientation and/or location of the user device. Theuser data also can include communications information such as dataidentifying communications that may include an item reference, or thelike. The user data can include other data and/or combinations of thedata described herein, in some embodiments.

The user device can obtain the various data included in the user dataand package the user data in a particular format. The user device cantransmit the user data to the shopping service, in some embodiments. Insome other embodiments, the user device can store and/or use the userdata at the user device instead of transmitting the user data. In someother embodiments, the shopping service can obtain the user data. Theshopping service also can be configured to collect data (“collecteddata”) from one or more data sources. The data sources can include, forexample, promotion sources, offer sources, location services,communication sources, or the like.

The shopping service can analyze the user data and the collected data tocreate shopping data. The shopping data can represent the user data,history information, the collected data, other data, and the like. Theshopping data can be used to generate one or more purchase alternativesfor items represented by the object data; to identify promotionsrelating to items represented by the object data; to determine purchasehistories and/or trends associated with users, devices, locations, orthe like; and/or for other purposes. The shopping service can generatedisplay data and provide the display data to the user device forpresentation at the user device. In some other embodiments, the userdevice can obtain the collected data from the shopping service andgenerate the display data at the user device. Regardless of where thedisplay data is generated, the user device can present one or moredisplays at the user device. The displays can be used during shopping toprovide various functions and/or enhancements for a user or otherentity. Some of these functions and/or enhancements are illustrated anddescribed herein.

According to various embodiments of the concepts and technologiesdescribed herein, the displays can be used to guide users through astore or other environment to find a product, object, item, service, orthe like on a shopping list. Because the user device and/or the servercomputer can communicate with backend systems of a retail location orretailer, the location of items may be kept updated. Thus, if items aremoved for sales or other purposes, the concepts and technologiesdescribed herein can be used to locate the items without additionaleffort on the part of the user.

The displays also can be used to present one or more promotions relatingto one or more items on a shopping list. The promotions also can relateto items not on a shopping list. For example, the concepts andtechnologies described herein can be used to enable a store to pushpromotions to the user device when the user device arrives at or near astore. The promotions also can be identified and provided to the user orto the shopping service if the history information indicates that theitem may be of interest to the user or other entity, and/or at othertimes.

The displays also can provide purchase options to a user during ashopping service. Thus, a promotional sale, new product, or other itemmay be offered to the user during the shopping experience using theconcepts and technologies described herein. The displays also canindicate that an item reference or product reference has been detectedat the user device or elsewhere. For example, if an email, text message,or other communication mentioning a product or item is received at theuser device or elsewhere, the shopping application and/or the shoppingservice may identify an item reference in the communication and informthe user. The displays also can present compatibility information. Thecompatibility information can relate to a user, a user device, a vehicleassociated with the user, an office, home, room, or other entity orlocation associated with the user, combinations thereof, or the like.Thus, embodiments of the concepts and technologies described herein canbe used to simplify a shopping experience for a user or other entity.

According to one aspect of the concepts and technologies disclosedherein, a method is disclosed. The method can include receiving, at aprocessor executing a shopping service, a request for display data. Theprocessor can analyze shopping data to identify data sources. Theshopping data can include user data associated with the requestor, andthe data sources can include an offer source. The processor can obtaincollected data from the data sources identified. The collected data caninclude an offer. The processor can generate display data based upon thecollected data and the shopping data, and provide the display data to auser device. The display data can identify the offer.

In some embodiments, the user data can include object data that canidentify an object associated with an interaction by the user device. Insome embodiments, the object can include an object on a shopping list,and the interaction can include a purchase of the object. Theinteraction can include displaying an augmented reality display that caninclude a reference to the object, and the display data can include auser interface element that can include a virtual shelf. The virtualshelf, in some embodiments, can include the reference to the object.

In some embodiments, the virtual shelf can be displayed by the userdevice, and a product alternative can be displayed on the virtual shelf.The object can include an object that is not on a shopping list, and theinteraction can include obtaining a promotion relating to the object. Insome embodiments, the object data can identify an item referenceincluded in a communication sent to the user device. In someembodiments, the user data can include compatibility data associatedwith a user. The compatibility data can identify a vehicle associatedwith the user. In some other embodiments, the compatibility data canidentify dimensions of a structure associated with the user.

According to another aspect of the concepts and technologies disclosedherein, a system is disclosed. The system can include a processor and amemory. The memory can store computer-executable instructions that, whenexecuted by the processor, cause the processor to perform operations.The operations can include receiving a request for display data andanalyzing shopping data. The shopping data can include user dataassociated with a requestor and the data sources can include an offersource. The operations further can include obtaining collected data fromthe data sources identified. The collected data can include an offer.The operations also can include generating display data based upon thecollected data and the shopping data, and providing the display data toa user device. The display data can identify the offer.

In some embodiments, the user data can include object data. The objectdata can identify an object on a shopping list, and the object can beassociated with a purchase. In some embodiments, the user data caninclude object data that can identify an object associated with aninteraction at the user device. The interaction can include displayingan augmented reality display. The augmented reality display can includea reference to the object, and the display data can include a userinterface element that can include a virtual shelf. The virtual shelfcan include the reference.

In some embodiments, the user data can include compatibility dataassociated with a user. The compatibility data can identify dimensionsof an entity associated with the user. In some embodiments, the userdata can include preferences associated with a shopping service,shopping list data, and orientation data. The orientation data candefine a geographic location of the user device and an orientation ofthe user device at the geographic location. In some embodiments, theshopping data can include history information. The history informationcan identify a purchase history associated with a geographic location,and can be used to identify the offer source.

According to yet another aspect, a computer storage medium is disclosed.The computer storage medium can have computer-executable instructionsstored thereon that, when executed by a processor, cause the processorto perform operations. The operations can include receiving, from arequestor, a request for display data, and analyzing the shopping data.The shopping data can include user data associated with the requestorand the data sources can include an offer source. The operations alsocan include obtaining collected data from the data sources identified.The collected data can include an offer. The operations also can includegenerating display data based upon the collected data and the shoppingdata, and providing the display data to a user device. The display datacan identify the offer.

In some embodiments, the user data can include object data that canidentify an object associated with an interaction at the user device.The interaction can include displaying an augmented reality display thatcan include a reference to the object. The display data can include auser interface element including a virtual shelf that can include thereference. In some embodiments, the user data can include compatibilitydata associated with a user, and the compatibility data can identifydimensions of an entity associated with the user. In some embodiments,the user data can include preferences associated with a shoppingservice, shopping list data, compatibility data associated with the userdevice, and orientation data. The orientation data can define ageographic location of the user device and an orientation of the userdevice at the geographic location.

Other systems, methods, and/or computer program products according toembodiments will be or become apparent to one with skill in the art uponreview of the following drawings and detailed description. It isintended that all such additional systems, methods, and/or computerprogram products be included within this description, be within thescope of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram illustrating an illustrative operatingenvironment for various embodiments of the concepts and technologiesdescribed herein.

FIG. 2 is a flow diagram showing aspects of a method for generating andupdating shopping data, according to an illustrative embodiment of theconcepts and technologies described herein.

FIG. 3 is a flow diagram showing aspects of a method for generatingdisplay data for providing augmented reality shopping displays,according to an illustrative embodiment of the concepts and technologiesdescribed herein.

FIG. 4 is a flow diagram showing aspects of a method for providingaugmented reality shopping displays, according to an illustrativeembodiment of the concepts and technologies described herein.

FIG. 5 is a flow diagram showing aspects of a method for generating userdata for use in generating and/or presenting augmented reality shoppingdisplays, according to an illustrative embodiment of the concepts andtechnologies described herein.

FIGS. 6A-6G are user interface diagrams showing various screen displaysfor providing augmented reality shopping displays, according to someillustrative embodiments of the concepts and technologies describedherein.

FIG. 7 schematically illustrates a network, according to an illustrativeembodiment of the concepts and technologies described herein.

FIG. 8 is a block diagram illustrating an example computer systemconfigured to generate data for providing augmented reality shoppingdisplays, according to some illustrative embodiments of the concepts andtechnologies described herein.

FIG. 9 is a block diagram illustrating an example mobile deviceconfigured to interact with a shopping service to provide augmentedreality shopping displays, according to some illustrative embodiments ofthe concepts and technologies described herein.

DETAILED DESCRIPTION

The following detailed description is directed to generating and/orpresenting augmented reality shopping displays. According to someembodiments of the concepts and technologies described herein, a userdevice can execute a shopping application and a server computer canexecute a shopping service. A shopping list can be created at the userdevice or otherwise accessed by the user device. The user device may beused during shopping. For example, the user device may be used to scanitems to obtain information, to perform searches, to purchase items, tonavigate through a store, combinations thereof, or the like. Theshopping application can provide the functionality illustrated anddescribed herein for creating a shopping list and/or shopping for itemsor services on the shopping list.

According to some embodiments, the user device can generate user data.The user data can include object data. The object data can relate to oneor more items, products, services, or the like interacted with during ashopping outing. The user data also can include one or more preferencesassociated with the shopping application and/or a shopping service. Theuser data also can include shopping list data relating to a shoppinglist and/or shopping list items. The user data also can includecompatibility data. The compatibility data can relate to the user, theuser device, a vehicle, an office, a home, a room, or the like. The userdata also can include orientation data that can define an orientationand/or location of the user device. The user data also can includecommunications information and/or other data, as well as combinations ofone or more of the data illustrated and described herein. The userdevice can transmit the user data to the shopping service, in someembodiments. In some embodiments, the user device can store and/or usethe user data at the user device. In some other embodiments, theshopping service can obtain the user data and can collect data from oneor more data sources such as promotion sources, offer sources, locationservices, communication sources, or the like.

The shopping service can analyze the user data and the collected data tocreate shopping data. The shopping data can represent the user data,history information, the collected data, other data, and the like, andcan be used to identify one or more purchase alternatives to items on ashopping list or items interacted with by the user device; to identifyone or more promotions for items interacted with and/or items on ashopping list; to determine purchase histories and/or trends associatedwith items, users, locations, or the like; and/or for other purposes.The shopping service can generate display data and provide the displaydata to the user device for presentation at the user device and/or foruse in generating one or more displays. In some other embodiments, theuser device can obtain the collected data from the shopping service andgenerate the display data at the user device. Regardless of where thedisplay data is generated, the user device can present one or moredisplays at the user device. The displays can be used during shopping toprovide various functions and/or enhancements for a user or otherentity.

According to various embodiments of the concepts and technologiesdescribed herein, the displays can be used to guide users through astore or other environment to find a product, object, item, service, orthe like on a shopping list. The displays also can present one or morepromotions relating to one or more items on a shopping list. Thepromotions also can relate to items not on a shopping list, for examplewhere a store may push the promotions to the user device when the userdevice arrives at or near a store, where a history indicates that theitem may be of interest to the user or other entity, and/or at othertimes. The displays also can provide purchase options to a user during ashopping service. The displays also can indicate that an item referenceor product reference has been detected at the user device or elsewhere.The displays also can present compatibility information. Thecompatibility information can relate to a user, a user device, a vehicleassociated with the user, an office, home, room, or other entity orlocation associated with the user, combinations thereof, or the like.Thus, embodiments of the concepts and technologies described herein canbe used to simplify a shopping experience for a user or other entity.

While the subject matter described herein is presented in the generalcontext of program modules that execute in conjunction with theexecution of an operating system and application programs on a computersystem, those skilled in the art will recognize that otherimplementations may be performed in combination with other types ofprogram modules. Generally, program modules include routines, programs,components, data structures, and other types of structures that performparticular tasks or implement particular abstract data types. Moreover,those skilled in the art will appreciate that the subject matterdescribed herein may be practiced with other computer systemconfigurations, including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like.

Referring now to FIG. 1, aspects of an operating environment 100 forvarious embodiments of the concepts and technologies disclosed hereinfor augmented reality shopping displays will be described, according toan illustrative embodiment. The operating environment 100 shown in FIG.1 includes a user device 102. In some embodiments, the user device 102can operate in communication with and/or as part of a communicationsnetwork (“network”) 104. It should be understood, however, that the userdevice 102 also can provide some of the functionality described hereinwithout communicating via the network 104.

According to various embodiments, the functionality of the user device102 may be provided by one or more server computers, personal digitalassistants (“PDAs”), tablet computers, slate computers, smart watches,smart glasses (e.g., the GOOGLE GLASS family of products), mobile mediadevices, mobile telephones, laptop computers, smartphones, othercomputing systems, and the like. It should be understood that thefunctionality of the user device 102 can be provided by a single device,by two similar devices, and/or by two or more dissimilar devices. Forpurposes of describing the concepts and technologies disclosed herein,the user device 102 is described herein as a smartphone. It should beunderstood that this embodiment is illustrative, and should not beconstrued as being limiting in any way.

The user device 102 can execute an operating system 106, one or moreapplication programs (not shown in FIG. 1), and one or more applicationprograms such as, for example, a shopping application 108. The operatingsystem 106 is a computer program for controlling the operation of theuser device 102. The application programs and/or the shoppingapplication 108 can include executable programs configured to execute ontop of the operating system 106 to provide various functions illustratedand described herein for generating, providing, presenting, obtainingdata for, and/or using augmented reality shopping displays. In someembodiments, the application programs can include, but are not limitedto, web browsers, web applications, mail applications, nativeapplications, media applications, camera and/or video applications,combinations thereof, or the like. Because various embodiments ofapplication programs are generally known, the application programs arenot described in additional detail herein.

The shopping application 108 can be configured to provide thefunctionality described herein for providing augmented reality shoppingdisplays. As such, the shopping application 108 can be configured tostore, access, and/or capture various types of data that can be used toprovide the functionality illustrated and described herein. In someembodiments, the shopping application 108 can generate the augmentedreality shopping displays, while in some other embodiments, the shoppingapplication 108 can interact with other devices, services, applications,and/or other entities to obtain data for the augmented reality shoppingdisplays. These embodiments will be illustrated and described in moredetail below.

According to various embodiments, the shopping application 108 cansupport interactions for obtaining preferences, settings, and/or optionsfor providing and/or using augmented reality shopping displays. Theshopping application 108 also can support operations for creating,maintaining, accessing, and/or updating shopping lists that may be usedduring shopping and/or in conjunction with augmented reality shoppingdisplays. The shopping application 108 also can obtain, present, and/orsupport the use of promotions, as well as representing the promotions inconjunction with augmented reality shopping displays as illustrated anddescribed herein. The shopping application 108 also can identify,collect, and/or present purchase options to users, for example as partof augmented reality shopping displays. The shopping application 108also can be configured to determine compatibility of various items orproducts with users, rooms, vehicles, buildings, combinations thereof,or the like. These and other functions of the shopping application 108will be illustrated and described in more detail below.

As explained above, the shopping application 108 can provide thefunctionality illustrated and described herein and/or can interact withother devices, applications, and/or services to provide thefunctionality illustrated and described herein. According to variousembodiments, including the embodiment shown in FIG. 1, the shoppingapplication 108 can communicate with a shopping service 110 or othersoftware that may be hosted or executed by a computing device. In theillustrated embodiment, the shopping service 110 can be a callableservice that may be hosted by a server computer 112. Because theshopping service 110 can be invoked, accessed, and/or interacted with inmanners other than service calls or the like, it should be understoodthat the functionality of the server computer 112 may be provided byother computing devices such as laptop computers, workstations, webservers, combinations thereof, or the like. As such, it should beunderstood that this example is illustrative and therefore should not beconstrued as being limiting in any way.

The shopping service can be configured to obtain user data 114 from theuser device 102, and to use the user data 114 to provide variousfunctionality illustrated and described herein. The user data 114 caninclude object data, preferences, shopping list data, compatibilitydata, orientation data, other data (not illustrated separately in FIG.1), combinations thereof, or the like. The object data can includeinformation that identifies an object, product, or service that is beinginteracted with in some manner at or in association with the user device102. As used herein, an “interaction” can include, but is not limitedto, a scan of an object, product, or indicia relating to a service(which may occur when the user or other entity considers purchasing anitem); a search relating to a particular object, product, or service; apurchase of a particular object, product, or service; adding aparticular object, product, or service to a shopping list; detecting areference or request relating to an object, product, or service at theuser device 102; combinations thereof; or the like. Thus, the objectdata can include any information or data that can identify an object,product, item, or service that is being considered for purchase or isbeing purchased at or by the user device 102 and/or a user or otherentity associated therewith.

The preferences can include settings, options, configurations, profiles,and/or other user-specific, device-specific, store-specific,application-specific, and/or service-specific preferences associatedwith the shopping application 108 and/or the shopping service 110. Invarious embodiments, the preferences can specify when, where, and howthe user device 102 will use and/or access the shopping application 108and/or the shopping service 110. Thus, for example, the preferences canbe used to enable/disable use of store backend systems to provideguidance in stores, pricing information, coupon, sale, or otherpromotion information; to enable/disable the use of user profiles todetermine product compatibility with particular locations, vehicles, orthe like; to enable/disable the use of location information and/orlocation services; to enable/disable the use of communication monitoringto detect references to items, objects, products, or services relevantto the shopping application 108 and/or shopping service 110 incommunications received at and/or sent by or in association with theuser device 102; to enable/disable accessing online merchants and/orshopping platforms; to enable/disable the use of shopping lists;combinations thereof; or the like.

Because some features of the shopping application 108 and/or theshopping service 110 may be charged or billed separately, thepreferences can be used to limit or expand the functionality of theshopping application 108 and/or the shopping service 110 for purposes ofbilling, if desired. Because the preferences can include other settingsand/or options as illustrated and described herein, it should beunderstood that these examples are illustrative and therefore should notbe construed as being limiting in any way.

The shopping list data can include information or data for specifying ashopping list and/or items on a shopping list. The shopping list dataalso can be used to modify lists (e.g., to add items to the list, toremove items from the list, or the like). The shopping list data caninclude data in various formats and can be used, in some embodiments, bythe shopping service 110 to search for alternatives to items on thelist, to search for promotions for items on the list, to generate ashopping path within a particular store or location based on items onthe list, to determine compatibility and/or product information relatingto items on the list, and/or for other purposes. Thus, the shoppingservice 110 can use the shopping list data to determine what a user maypurchase, where the user may purchase those items, available promotionsand/or purchase options relating to the items on the shopping list,whether or not the items are compatible with user preferences or needs,combinations thereof, or the like.

The compatibility data can include information that specifies userneeds, preferences, or the like. Thus, the compatibility data caninclude data that can define a vehicle driven by a user and/or otherentity associated with the user device 102. The use of this data isillustrated and described in more detail below, but briefly thisinformation can be used, for example, to determine if a product beingconsidered for purchase or being purchased can be transported home in auser's vehicle; if the product will fit in a particular home, office, orother location; or the like. The compatibility data also can indicate,for example, information relating to the user such as dietary needs orpreferences (e.g., gluten-free, vegetarian, halal, kosher, fish-free,dairy-free, or the like); body dimensions (e.g., waist size, head size,or the like); and/or other user-specific information. Thus, thecompatibility data can be used to determine if a product that is beingpurchased or considered for purchase by a user is compatible with theuser's dietary needs, body dimensions, combinations thereof, or thelike.

The orientation data can represent the orientation of the user device102 at any particular moment. Thus, the orientation data can be obtainedfrom one or more sensors such as accelerometers, location determinationdevices (e.g., global positioning system (“GPS”) receivers, or thelike), magnetometers, gyroscopes, location and/or orientation sensors orsensor arrays, combinations thereof, or the like. The orientation dataalso can include location data that can identify a geographic location.Thus, the orientation data can represent not only where the user device102 is (e.g., a geographic location), but also how the user device 102is oriented (e.g., a facing direction, an angle of incline, or thelike), as well as movements of the user device 102. Thus, the shoppingservice 110 and/or the shopping application 108 can track movements ofthe user device 102 at various locations including interior spaces todetermine location at any particular moment. This information may beused to generate augmented displays from the current point of view ofthe user device 102 and/or for other purposes as illustrated anddescribed herein.

According to various embodiments, the shopping service 110 can beconfigured to obtain the user data 114, to analyze the user data 114and/or other information obtained from other sources, and to generateshopping data 116. The shopping data 116 can represent and/or caninclude the user data 114. In various embodiments, the shopping data 116can also include history information and other data as illustrated anddescribed herein. The history information can represent trendsassociated with the user device 102 and/or a user thereof. The trendscan include, for example, trends or histories relating to locations(e.g., businesses, offices, facilities, or the like), purchasing orshopping activities associated with the user device 102 and/or a userthereof, promotions histories, price histories, combinations thereof, orthe like.

The shopping data 116 also can include or represent other data such aslocation data, data relating to purchase options, data relating topromotions, or the like. According to various options, the shoppingservice 110 can obtain or collect data (“collected data”) 120 from oneor more data sources 122. The collected data 120 can include, forexample, location data 124, offers 126, promotions 128, and/or otherinformation. As such, the data sources 122 can include one or morelocation services 130 such as location servers, network devices or thelike; one or more offer sources 132 such as online marketplaces, retaillocation devices and/or backend systems, or the like; and one or morepromotion sources 134 such as discount sites, coupon sites, sale sites,combinations thereof, or the like. These data will be described in moredetail below.

The shopping service 110 can generate the shopping data 116 based uponthe user data 114, the collected data 120, history information (whichcan be detected or generated by the shopping service 110), and/or otherdata. The shopping service 110 can store the shopping data 116 at alocal or remote data storage device or location (“data storagelocation”). The data storage location can include one or more real orvirtual data storage locations such as, for example, a memory, a servercomputer, a database, a data store, or the like. In the illustratedembodiment shown in FIG. 1, the shopping service 110 can be configuredto store the shopping data 116 at a data store 118. The data store 118can be hosted by the server computer 112 or remotely located relative tothe server computer 112. According to various embodiments, thefunctionality of the data store 118 can be provided by one or moreserver computers, databases, laptop computers, memory devices, harddrives or other mass storage devices, virtual storage resources,combinations thereof, or the like.

Further description of the collected data 120 and the data sources 122is now provided. The collected data 120 can include location data 124,which can be obtained by one or more location services 130. The locationservices 130 can include, for example, a location server, networkhardware, location beacons, combinations thereof, or the like. Thelocation services 130 also can include the user device 102, which mayperiodically or at other times report its location to the shoppingservice 110 and/or other entities. Thus, the location data 124 canrepresent the geographic location of the user device 102 to varyinglevels of accuracy including, but not limited to, a particular network,a particular network cell, a particular coverage area, a particularbuilding, a particular room, or specific geographic coordinates. Becauselocation determination and/or the varying levels of accuracy associatedwith various location determination techniques are generally understood,the various ways to compute location and/or the accuracy associated withthese various approaches are not further described herein.

The collected data 120 also can include one or more offers 126, whichmay be obtained from one or more offer sources 132. The offers 126 candefine prices, shipping terms, tax information, and/or other cost and/ordelivery information available from an offer source 132 for a particularproduct, item, object, or service. Thus, the offers 126 can be obtainedto determine a price, delivery time, shipping charge, and/or other timeor cost for an item, product, object, or service being considered forpurchase or being purchased. Thus, as will be illustrated and describedin more detail herein, the shopping service 110 can obtain purchaseoptions or alternatives for purchases being considered, for example froman online retailer for comparison purposes or for other purposes.According to various embodiments, the offer sources 132 can includewebsites, vendors, auction sites, distributors, private parties,combinations thereof, or the like. Because the offers 126 can come fromadditional and/or alternative offer sources 132, it should be understoodthat these examples are illustrative and therefore should not beconstrued as being limiting in any way.

The collected data 120 also can include one or more promotions 128,which may be obtained from one or more promotion sources 134. Thepromotions 128 can define coupons, sales, discount quantities, specialdeals, combinations thereof, or the like, from a promotion source 134for a particular product, item, object, or service. Thus, the promotions128 can be obtained to determine a discount or other promotion for anitem, product, object, or service being considered for purchase or beingpurchased at the user device 102 and/or by an entity associated with theuser device 102. Thus, as will be illustrated and described in moredetail herein, the shopping service 110 can obtain promotions forpurchases being considered. According to various embodiments, thepromotion sources 134 can include discount websites, auction sites,coupon vendors, coupon circulars, vendor systems, combinations thereof,or the like. Because the promotions 128 can come from additional and/oralternative promotion sources 134, it should be understood that theseexamples are illustrative and therefore should not be construed as beinglimiting in any way.

The shopping service 110 can be configured to analyze the shopping data116 and the collected data 120 to determine an interaction occurring atthe user device 102. As noted above, the interaction can include apurchase of an item or service, consideration of a purchase,presentation and/or interaction with an augmented reality displayrelating to an item, adding the item or service to a shopping list, orthe like. The shopping service 110 can be configured to identify otherpurchase options, promotions, and/or the like and provide thisinformation to the user device 102 for consideration at the point ofsale or elsewhere.

According to various embodiments, the shopping service 110 can generatedisplay data 136 and transmit or otherwise provide the display data 136to the user device 102. The display data 136 can represent the offers126, the promotions 128, and/or other information such as historyinformation, compatibility data, or the like. Thus, the shopping service110 can, by way of creating and/or providing the display data 136 to theuser device 102, provide purchase options, purchase suggestions,compatibility information, combinations thereof, or the like, to theuser device 102. As explained above in detail, the shopping service 110can be configured to merely collect the collected data 120 and/or theshopping data 116, and the shopping application 108 can be configured toprovide the functionality illustrated and described herein forgenerating and presenting suggestions, promotions, purchase options,compatibility information, combinations thereof, or the like. In variousembodiments, the user device 102 can provide this and other information,or obtain preferences, compatibility data, or the like, via one or moredisplays 138. The displays 138 will be illustrated and described in moredetail below.

The shopping application 108, or the shopping service 110, also can beconfigured to monitor one or more communications 140 sent by, receivedat, and/or associated with the user device 102 to identify an itemreference. The communications 140 can be sent by or to a communicationsource 142. The communication source 142 can include a short messageservice center (“SMSC”), a mail server, a multimedia message servicecenter (“MMSC”), a cellular phone or other communication device, atelephone, combinations thereof, or the like. The item reference caninclude any reference to a product, object, item, or service, which maybe detected using natural language analysis, identification ofidentifiers, flags, or the like. In the illustrated embodiment of FIG.1, the communication 140 is illustrated as being received by the userdevice 102. Thus, it can be appreciated that the communication 140 maycorrespond to an email or text that references a product, item, orservice. The communication 140 also can correspond to an update to ashopping list, or the like. Because the communication 140 can be sent toor from other devices, it should be understood that these examples areillustrative and therefore should not be construed as being limiting inany way.

In practice, a shopping list can be created at or accessed by the userdevice 102. The user device 102 may be used as part of a shoppingexperience such as for scanning items, for conducting item-relatedsearches, for conducting price checks, for navigating through stores orother facilities, combinations thereof, or the like. In variousembodiments, the shopping application 108 can provide the functionalityillustrated and described herein for creating a shopping list and/orshopping for items or services on the shopping list, navigating a userthrough the store to obtain items on the list, presenting promotions 128and/or offers 126 for items on the list and/or alternatives to items onthe list, checking compatibility of items on the list, combinationsthereof, or the like.

The user device 102 can generate user data 114 that includes object datarelating to one or more items, products, services, or the like;preferences; shopping list data; compatibility data; orientation data;other data (not illustrated); combinations thereof; or the like. Theother data can include, in some embodiments, data indicating one or morecommunications 140 and/or item references received at the user device102. The user device 102 can transmit the user data 114 to the shoppingservice 110, in some embodiments. In some other embodiments, the userdevice 102 can store and/or use the user data 114 at the user device 102to provide the functionality illustrated and described herein. Theshopping service 110 can obtain the user data 114 and the collected data120 from one or more data sources 122.

The shopping service 110 can analyze the user data 114 and the collecteddata 120 to create shopping data 116. The shopping data 116 can includeor represent the user data 114, history information, the collected data120, other data, and the like, and can be used to generate one or morepurchase alternatives, to identify promotions, to determine purchasehistories and/or trends, and/or for other purposes. The shopping service110 can generate display data 136 and provide the display data 136 tothe user device 102 for presentation at the user device 102. In someother embodiments, the user device 102 can obtain the collected data 120from the shopping service 110 and generate the display data 136 at theuser device 102. Regardless of where the display data 136 is generated,the user device 102 can present one or more displays 138 at the userdevice 102. The displays 138 can be used during shopping to providevarious functions and/or enhancements for a user or other entity.

According to various embodiments of the concepts and technologiesdescribed herein, the displays 138 can be used to guide users through astore or other environment to find a product, object, item, service, orthe like on a shopping list. The displays 138 also can present one ormore promotions relating to one or more items on a shopping list. Thepromotions also can relate to items not on a shopping list, for examplewhere a store may push the promotions to the user device 102 when theuser device 102 arrives at or near a store, where a history indicatesthat the item may be of interest to the user or other entity, and/or atother times. The displays 138 also can provide purchase options to auser during a shopping service. In some embodiments, as will beillustrated and described herein with reference to FIGS. 6A-6G, thepurchase options can be provided by way of a virtual shelf or the likepresented within an augmented reality shopping display or otherembodiment of the display 138. It should be understood that this exampleis illustrative and therefore should not be construed as being limitingin any way.

The displays 138 also can indicate that an item reference or productreference has been detected at the user device 102 or elsewhere. Thedisplays 138 also can present compatibility information. Thus, forexample, if a user who is generally gluten-free scans an item thatcontains gluten, the displays 138 can present a warning to the user orother entity. In some other embodiments, the compatibility informationcan relate to a vehicle, office, home, room, or other entity or locationand can indicate if the user can transport the item, if the item willfit in a room or building, combinations thereof, or the like. Thus,embodiments of the concepts and technologies described herein can beused to simplify a shopping experience for a user or other entity.

FIG. 1 illustrates one user device 102, one network 104, one servercomputer 112, one data store 118, three data sources 122, and onecommunication source 142. It should be understood, however, that variousimplementations of the operating environment 100 can include zero, one,or more than one user device 102; zero, one, or more than one network104; zero, one, or more than one server computer 112; zero, one, or morethan one data store 118; zero, one, two, three, or more than three datasources 122; zero, one, or more than one communication source 142. Assuch, the illustrated embodiment should be understood as beingillustrative, and should not be construed as being limiting in any way.

Turning now to FIG. 2, aspects of a method 200 for generating andupdating shopping data will be described in detail, according to anillustrative embodiment. It should be understood that the operations ofthe methods disclosed herein are not necessarily presented in anyparticular order and that performance of some or all of the operationsin an alternative order(s) is possible and is contemplated. Theoperations have been presented in the demonstrated order for ease ofdescription and illustration. Operations may be added, omitted, and/orperformed simultaneously, without departing from the scope of theconcepts and technologies disclosed herein.

It also should be understood that the methods disclosed herein can beended at any time and need not be performed in its entirety. Some or alloperations of the methods, and/or substantially equivalent operations,can be performed by execution of computer-readable instructions includedon a computer storage media, as defined herein. The term“computer-readable instructions,” and variants thereof, as used herein,is used expansively to include routines, applications, applicationmodules, program modules, programs, components, data structures,algorithms, and the like. Computer-readable instructions can beimplemented on various system configurations including single-processoror multiprocessor systems, minicomputers, mainframe computers, personalcomputers, hand-held computing devices, microprocessor-based,programmable consumer electronics, combinations thereof, and the like.

Thus, it should be appreciated that the logical operations describedherein are implemented (1) as a sequence of computer implemented acts orprogram modules running on a computing system and/or (2) asinterconnected machine logic circuits or circuit modules within thecomputing system. The implementation is a matter of choice dependent onthe performance and other requirements of the computing system.Accordingly, the logical operations described herein are referred tovariously as states, operations, structural devices, acts, or modules.These states, operations, structural devices, acts, and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof. As used herein, the phrase “cause aprocessor to perform operations” and variants thereof is used to referto causing a processor of a computing system or device, such as the userdevice 102 and/or the server computer 112, to perform one or moreoperations and/or causing the processor to direct other components ofthe computing system or device to perform one or more of the operations.

For purposes of illustrating and describing the concepts of the presentdisclosure, the methods disclosed herein are described as beingperformed by the user device 102 via execution of one or more softwaremodules such as, for example, the shopping application 108, or theserver computer 112 via execution of one or more software modules suchas, for example, the shopping service 110. It should be understood thatadditional and/or alternative devices and/or network nodes can providethe functionality described herein via execution of one or more modules,applications, and/or other software including, but not limited to, theshopping application 108 and/or the shopping service 110. Thus, theillustrated embodiments are illustrative, and should not be viewed asbeing limiting in any way.

The method 200 begins at operation 202. At operation 202, the servercomputer 112 can obtain user data 114. As illustrated and describedabove with reference to FIG. 1, the user data 114 can include, but isnot limited to, object data, preferences, shopping list data,compatibility data, orientation data, other data, combinations thereof,or the like. Thus, the user data 114 can include and/or can representone or more shopping lists; one or more items, objects, products, and/orservices being interacted with by or in proximity to the user device102; one or more preferences, settings, options, or configurationsassociated with the shopping application 108 and/or the shopping service110; compatibility data associated with a structure, a room, a vehicle,a user or other entity, or the like; orientation data that can define anorientation and/or location of the user device 102; other informationsuch as communication-related information; combinations thereof; or thelike.

According to various embodiments, the server computer 112 can obtain theuser data 114 from the user device 102 in response to a request for theuser data 114. In some other embodiments, the server computer 112 canobtain the user data 114 without requesting the user data 114. Forexample, the user device 102 can be configured to provide the user data114 to the server computer 112 during a setup process, upon detectingcreation of the user data 114 or a component thereof, according to aschedule, and/or at other times. Because the user data 114 can beobtained by the server computer 112 at additional and/or alternativetimes, it should be understood that these examples are illustrative andtherefore should not be construed as being limiting in any way.

From operation 202, the method 200 proceeds to operation 204. Atoperation 204, the server computer 112 can obtain collected data 120from a data source 122. In some embodiments, the server computer 112 canidentify one or more data sources 122 based upon the user data 114.Thus, for example, if the server computer 112 detects a particular itemon a shopping list, the server computer 112 can obtain an offer 126 froman offer source 132 such as a vendor that sells the item. It should beunderstood that this example is illustrative and therefore should not beconstrued as being limiting in any way.

In operation 204, the server computer 112 can obtain location data 124,one or more offers 126, and/or one or more promotions 128 from the datasources 122. While FIG. 1 illustrates a communication 140 being sent toor from the user device 102, it should be understood that in someembodiments the communication 140 may pass through a network or otherdevices that may be in communication with the server computer 112. Thus,the data sources 122 can include a communication source 142, in someembodiments, and as such the collected data 120 can include one or morecommunications 140 in some cases.

From operation 204, the method 200 proceeds to operation 206. Atoperation 206, the server computer 112 can store the shopping data 116.As illustrated and described above with reference to FIG. 1, the servercomputer 112 can generate the shopping data 116 based upon the user data114 and/or the collected data 120. Thus, the shopping data 116 caninclude the user data 114, the collected data 120, history informationthat can reflect trends and/or histories associated with the user device102 and/or a user thereof, and/or other data. The shopping data 116 canbe stored at a data store 118 or elsewhere.

From operation 206, the method 200 proceeds to operation 208. Atoperation 208, the server computer 112 can check for updated data fromthe user device 102, the one or more data sources 122, the communicationsource 142, or the like. Thus, the server computer 112 can determine ifthe user data 114 has been updated, if the collected data 120 has beenupdated, and/or if a communication 140 has been received or sent. Itshould be understood that this example is illustrative and thereforeshould not be construed as being limiting in any way.

The server computer 112 can repeat one or more of the operations 202-208repeatedly, if desired. Thus, from operation 208, the method 200 canpause until a data update is detected, after which the method 200 canreturn to operation 202 (if an update to the user data 114 is detected)or operation 204 (if an update to the collected data 120 is detected).In some other embodiments, the method 200 can end at operation 206. Assuch, the illustrated embodiment should not be construed as beinglimiting in any way.

Turning now to FIG. 3, aspects of a method 300 for generating displaydata 136 for providing augmented reality shopping displays will bedescribed in detail, according to an illustrative embodiment. The method300 begins at operation 302. At operation 302, the server computer 112can receive a request for display data 136. In some embodiments, therequest received in operation 302 can be an explicit request. Forexample, the user device 102 can generate an explicit request for thedisplay data 136 from the shopping service 110, which can be a callableservice hosted by the server computer 112. In some other embodiments,the request may be implicitly generated, for example, by the user device102 submitting the user data 114, which the server computer 112 mayunderstand as a request for the display data 136.

In some embodiments, the shopping application 108 can be configured toobtain the display data 136 when the shopping application 108 isinitiated, and as such, the request received in operation 302 cancorrespond to the shopping application 108 initiating contact betweenthe user device 102 and the shopping service 110 and/or the servercomputer 112. Because the request illustrated in operation 302 can beexplicit or implicit, and because the request for display data 136 canbe generated in a number of manners, it should be understood that theseexamples are illustrative and therefore should not be construed as beinglimiting in any way.

From operation 302, the method 300 proceeds to operation 304. Atoperation 304, the server computer 112 can analyze the shopping data 116to identify a data source 122. It should be understood that the datasource 122 identified in operation 304 can include one or more datasources 122. In operation 304, the server computer 112 can analyze therequest obtained in operation 302, or user data 114 received with therequest, or by a requestor. The server computer 112 can determine, basedupon the requestor, a requesting device, and/or an interaction occurringat the requestor or requesting device, a location, user, device, object,and/or history associated with the request. Thus, for example, if a userdevice 102 requests the display data 136 in operation 302, the servercomputer 112 can, in operation 304, identify user data 114 associatedwith the user device 102 and shopping data 116 that relates an object orother aspect related to the user data 114. It should be understood thatthis example is illustrative and therefore should not be construed asbeing limiting in any way.

In operation 304, the server computer 112 can identify one or more datasources 122 that may relate to the requestor or requesting device, forexample via identifying an object associated with the requestor orrequesting device and identifying one or more vendors that may be asource of offers 126 or promotions 128 relating to the object. Thus, forexample, if a shopping list associated with a user device 102 includesan item, the server computer 112 can determine, in operation 304, one ormore offer sources 132 who sell the item, one or more promotion sources134 who offer coupons or other promotions for the item, or the like. Theserver computer 112 also can identify one or more location services 130that may be able to provide location information relating to therequestor or the requesting device. Still further, the server computer112 may identify one or more communication sources 142 that maycommunicate with the user device 102. Because the server computer 112can identify data sources 122 in additional and/or alternative manners,it should be understood that these examples are illustrative andtherefore should not be construed as being limiting in any way.

From operation 304, the method 300 proceeds to operation 306. Atoperation 306, the server computer 112 can obtain collected data 120. Insome embodiments, the server computer 112 can obtain the collected data120 from the data sources 122 identified in operation 304. Thus, theserver computer 112 can obtain, in operation 306, one or more oflocation data 124, offers 126, promotions 128, and/or communications140. In various embodiments of the concepts and technologies describedherein, the request for display data 136 can relate to a particulardisplay 138 and as such, the server computer 112 may obtain one type ofcollected data 120 from one type of data source 122. In some otherembodiments, the request for display data 136 can result in the servercomputer 112 obtaining the collected data 120 from various types of datasources 122. Regardless of what data is requested and/or provided in themethod 300, the server computer 112 can identify the data sources 122and obtain the collected data 120 from those data sources 122 inoperation 306.

From operation 306, the method 300 proceeds to operation 308. Atoperation 308, the server computer 112 can update the shopping data 116.In operation 308, the server computer 112 can update, for example, thehistory information and/or collected data 120 components of the shoppingdata 116, as well as other data included in the shopping data 116. Thus,for example, if the history information included in the shopping data116 indicated previously that a purchase of a particular productoccurred a week ago and the user data 114 indicates a current purchasebeing completed, the server computer 112 can update the shopping data116 to indicate the current purchase. Additionally, or alternatively,the server computer 112 may update the collected data 120 portion of theshopping data 116 to reflect the collected data 120 obtained inoperation 306. Because the shopping data 116 may not be updated in allembodiments, it should be understood that these examples areillustrative and therefore should not be construed as being limiting inany way.

From operation 308, the method 300 proceeds to operation 310. Atoperation 310, the server computer 112 can generate the display data136. In operation 310, the server computer 112 can generate display data136 that is relevant to the request received in operation 302 and/or thecollected data obtained in operation 306. This will be more clearlyunderstood with reference to the user interface diagrams illustrated inFIGS. 6A-6G below.

Briefly, if the request relates to display data 136 relating togenerating a virtual shelf or the like, the display data 136 generatedin operation 310 can include data for creating or presenting userinterface elements such as the offers 126, virtual shelves, items forthe virtual shelves, and user interface controls relating to the itemsand/or virtual shelves. Similarly, if the request relates to displaydata 136 relating to promotions 128, the display data 136 generated inoperation 310 can include information relating to the promotions 128.Still further, if the request relates to display data 136 forinformation relating to a communication 140, the display data 136 caninclude display elements for presenting information relating to thecommunication 140 and/or the item reference, for example. Because thedisplay data 136 can relate to one or more of these or otherfunctionality as illustrated and described herein, it should beunderstood that these examples are illustrative and therefore should notbe construed as being limiting in any way.

From operation 310, the method 300 proceeds to operation 312. Atoperation 312, the server computer 112 can provide the display data 136generated in operation 310 to the requestor from whom the request wasreceived in operation 302. Thus, in operation 310 the server computer112 can provide the display data 136 to the user device 102 or to otherdevices or entities. It should be understood that the server computer112 can provide the display data 136 to the requestor by transmittingthe display data 136 to the requestor, by making the display data 136available for download, and/or by otherwise making the display data 136available. Thus, it can be appreciated that by executing the method 300,or some operations thereof, the server computer 112 can receive arequest for the display data 136 and make the display data 136 availableto a requestor. Although not necessarily part of the method 300, theuser device 102 or other requestor can use the display data 136 togenerate and/or present the display 138 and/or updates to the display138. It should be understood that this example is illustrative andtherefore should not be construed as being limiting in any way.

From operation 312, the method 300 proceeds to operation 314. The method300 ends at operation 314.

Turning now to FIG. 4, aspects of a method 400 for providing augmentedreality shopping displays will be described in detail, according to anillustrative embodiment. The method 400 begins at operation 402. Atoperation 402, the user device 102 can detect a request for display data136. Because the request can be generated at the user device 102, it canbe appreciated that the request detected in operation 402 can correspondto detecting initiation of the shopping application 108, detecting arequest to present a display 138 such as the augmented reality shoppingdisplay illustrated and described herein, detecting an interaction withthe shopping application 108, detecting an interacting with an object,item, product, or the like, combinations thereof, or the like.

Thus, it can be appreciated that the “request” detected in operation 402can be an explicit request, an implicit request, and/or another actionor activity that prompts the shopping application 108 and/or the userdevice 102 to obtain the display data 136. Because the display data 136can be obtained at additional and/or alternative times, it should beunderstood that these examples are illustrative and therefore should notbe construed as being limiting in any way.

From operation 402, the method 400 proceeds to operation 404. Atoperation 404, the user device 102 can generate user data 114. The userdata 114 can be generated by the user device 102 as part of a request toobtain display data 136, in some embodiments. In some other embodiments,the user data 114 can be generated in response to detecting the requestfor the display data 136 as the user data 114 may be used in conjunctionwith the display data 136 to generate and/or display the display 138.Additional details of generating the user data 114 are illustrated anddescribed herein with reference to FIG. 5.

Briefly, the user device 102 can generate or capture object data,preferences, shopping list data, compatibility data, orientation data,communications information, and/or other data. It can be appreciatedthat the user data 114 may be generated at the user device 102 using oneor more screen displays such as the displays 138 to obtain user input,by capturing data at the user device 102, by capturing sensor readingsat the user device 102, and/or via other interactions with or at theuser device 102. These and other operations for obtaining and/orgenerating the user data 114 will be illustrated and described in moredetail below with reference to FIG. 5.

From operation 404, the method 400 proceeds to operation 406. Atoperation 406, the user device 102 can provide the user data 114 to theserver computer 112. In some embodiments, as mentioned above, the userdata 114 may be used at the user device 102 and may not be provided tothe server computer 112. As such, it can be appreciated that operation406 can be omitted in some embodiments.

From operation 406, the method 400 proceeds to operation 408. Atoperation 408, the user device 102 can obtain the display data 136. Inoperation 408, the user device 102 can obtain the display data 136 fromthe server computer 112 or from another device, system, or the like. Insome other embodiments, the user device 102 can generate the user data114. Thus, operation 408 can correspond to receiving or generating thedisplay data 136, according to various embodiments.

From operation 408, the method 400 proceeds to operation 410. Atoperation 410, the user device 102 can present the display 138. Thedisplay 138 presented in operation 410 can be presented to provide theuser or other entity with one or more offers 126, one or more promotions128, information relating to one or more communications 140, historicalinformation and/or other collected data 120 such as location data,combinations thereof, or the like. The display 138 also can be used tocreate, maintain, and/or interact with a shopping list or the like. Thedisplays 138 also can be used to obtain preferences, or the like. Someexample embodiments of the display 138 are illustrated and describedherein, particularly with reference to FIGS. 6A-6G. It should beunderstood that these examples are illustrative and therefore should notbe construed as being limiting in any way.

From operation 410, the method 400 proceeds to operation 412. The method400 ends at operation 412.

Turning now to FIG. 5, aspects of a method 500 for generating user data114 for use in generating and/or presenting augmented reality shoppingdisplays will be described in detail, according to an illustrativeembodiment. It should be understood that the operations of the method500 illustrated and described herein can be, but are not necessarily,provided by the user device 102 at operation 404 of the method 400illustrated and described above with reference to FIG. 3. It should beunderstood that this example is illustrative and therefore should not beconstrued as being limiting in any way.

The method 500 begins at operation 502. At operation 502, the userdevice 102 can generate object data. It should be understood that theuser device 102 can capture object data or generate the object data. Theobject data can relate to an object such as a product, an item, anobject, a service, or the like that is being purchased, or consideredfor purchase, at the user device 102 and/or in association with the userdevice 102. The object data can be captured or generated, for example,by scanning a product barcode and identifying a product that isassociated with the scanned barcode; by detecting an object on ashopping list; by detecting an item reference in a communication 140 andidentifying the object based upon the item reference; by detecting asubject of a search conducted via the user device 102; by detecting oneor more objects in a view of the user device 102 (e.g., in a camera viewassociated with the user device 102); by identifying an objectassociated with a promotion 128 received at the user device 102;combinations thereof; or the like. Thus, it can be appreciated that theobject data can identify any purchased or purchasable item, product,object, service, or the like.

From operation 502, the method 500 proceeds to operation 504. Atoperation 504, the user device 102 can generate one or more preferences.In various embodiments, the user device 102 can obtain preferences,settings, options, or the like from a user or other entity at the userdevice 102 by presenting one or more screen displays at the user device102 and obtaining input relating to the preferences. In some otherembodiments, the preferences may be obtained from other sources such as,for example, program code, network systems, configuration files,combinations thereof, or the like. Because preferences may be stored atvarious times, it should be understood that the functionality ofoperation 504 may be omitted in some embodiments of the method 500and/or may be performed at other times.

Regardless of where the preferences are obtained from and/or when thepreferences are obtained, the preferences can reflect how and when theshopping application 108 and/or shopping service 110 are to be used,what types of displays 138 are to be generated and/or presented, whatdata and/or data sources 122 are to be accessed and/or considered inpreparing display data 136, how history files are to be maintainedand/or used, combinations thereof, or the like. Thus, the preferencescan be used to define how the shopping application 108 and/or theshopping service 110 interact with the user, what information isincluded in the displays 138 and/or when the displays 138 are presented,how offers 126 and/or promotions 128 are obtained and/or presented,combinations thereof, or the like.

From operation 504, the method 500 proceeds to operation 506. Atoperation 506, the user device 102 can generate shopping list data.According to various embodiments, the user device 102 can providefunctionality for generating, maintaining, updating, and/or storingshopping lists. Thus, the functionality illustrated by operation 506 caninclude obtaining a shopping list at the user device 102, obtaining amodification to the shopping list, obtaining a command to save theshopping list, combinations thereof, or the like. In some otherembodiments, a shopping list can be stored at a server or other device,and the user device 102 can interact with the shopping list. As such,operation 506 can correspond to the user device 102 accessing a remoteshopping list and capturing data corresponding to the shopping list.Because the shopping list data can be obtained in additional and/oralternative ways, it should be understood that these examples areillustrative and therefore should not be construed as being limiting inany way. Similarly, because the shopping list data may be created and/ormodified at various times, it should be understood that thefunctionality of operation 506 may be omitted in some embodiments of themethod 500 and/or may be performed at other times.

From operation 506, the method 500 proceeds to operation 508. Atoperation 508, the user device 102 can generate compatibility data. Inoperation 508, the user device 102 can obtain compatibility datarelating to the user, the user device 102, a vehicle associated with theuser or user device 102, a room or structure associated with the user oruser device 102, and/or other locations or entities associated with theuser or user device 102. Thus, according to various embodiments thecompatibility data can define whether products, objects, items, and/orservices are compatible with a user; a user's home, office, or otherlocation; a user's body or health preferences; a user's vehicle or othertransport mechanism; combinations thereof, or the like.

In some embodiments, for example, a user may define a vehicle or othermode of transport. The user device 102 can obtain the designation of thevehicle or other mode of transport and determine a capacity of thevehicle to carry goods, products, items, or other objects. Thus, if auser considers purchasing a particular item, the user device 102 canaccess the compatibility data to determine if the user's vehicle cancarry the item (e.g., will the item fit, can the vehicle carry theweight, etc.).

In some other embodiments, a user may define a home living area, a doorsize, or the like, and when considering a purchase, the user device 102can use the compatibility data to determine if the item can be broughtthrough a door (or the like) into the home, if the item will fit in theroom or space designated by the compatibility data, combinationsthereof, or the like. In yet other embodiments, the compatibility datacan indicate that a user is a vegetarian, that the user eats only koshermeat, that the user eats only halal, that the user eats only glutenfree, combinations thereof, or the like. Thus, if a user considerspurchasing a food product, the user device 102 can use the compatibilitydata to determine if the food product is compatible with the user'shealth and/or taste preferences. It should be understood that thisexample is illustrative and therefore should not be construed as beinglimiting in any way.

Thus, operation 508 can include obtaining compatibility data from a useror other entity. The compatibility data can be obtained in variousmanners and/or can be used for various manners as will be clear from theabove description. In some embodiments, use of the compatibility datacan prompt the user device 102 to verify that the compatibility data isstill current. Furthermore, the compatibility data can be used togenerate alerts or other display elements that may inform the user thata purchase may be incompatible. It should be understood that theseexamples are illustrative and therefore should not be construed as beinglimiting in any way. Furthermore, because the compatibility data may becreated and/or modified at various times, it should be understood thatthe functionality of operation 508 may be omitted in some embodiments ofthe method 500 and/or may be performed at other times.

From operation 508, the method 500 proceeds to operation 510. Atoperation 510, the user device 102 can generate orientation data. Theorientation data can be generated by obtaining location information(e.g., from a GPS receiver, or the like) as well as sensor readings fromone or more sensors. The location information can indicate a geographiclocation associated with the user device 102, and the orientation datacan indicate a direction in which the user device 102 is facing, anangle of incline associated with the user device 102, movements of theuser device 102 (if any), combinations thereof, or the like. Thus, theorientation data can reflect where the user device 102 is as well as anorientation of the user device 102. This information can be used togenerate the display 138, which can include augmented realityinformation and therefore may use a current location and orientation ofthe user device 102 to determine a point of view associated with theuser device 102. It should be understood that this example isillustrative and therefore should not be construed as being limiting inany way.

From operation 510, the method 500 proceeds to operation 512. Atoperation 512, the server computer 112 can output the user data 114. Theuser data 114 can be packaged from the data generated in operations502-510, in various embodiments, and this packaged data can be output inoperation 512. When output in operation 512, the user data 114 can beused at the user device 102 and/or transmitted to other entities. Thus,it should be understood that the outputting of the user data 114 mayinclude outputting the user data 114 to a location or device external tothe user device 102, rather, that the user data 114 can be output toother applications, services, or the like executing at or in conjunctionwith the user device 102.

From operation 512, the method 500 proceeds to operation 514. The method500 ends at operation 514. It should be understood that the method 500can be performed with respect to execution of the operation 404 shown inFIG. 4. As such, execution of the method 400 can proceed after executionof the method 500, in some embodiments. It should be understood thatthis example is illustrative and therefore should not be construed asbeing limiting in any way.

FIGS. 6A-6G show aspects of UIs for interacting with, configuring,and/or providing functionality associated with a shopping application108 and/or a shopping service 110, according to some illustrativeembodiments of the concepts and technologies described herein. FIG. 6Ashows an illustrative screen display 600A generated by a device such asthe user device 102. According to various embodiments, the user device102 can generate the screen display 600A and/or other screen displays inconjunction with execution of the shopping application 108 and/orinteractions with the shopping service 110. It should be appreciatedthat the UI illustrated in FIG. 6A is illustrative of one contemplatedexample of the UIs and therefore should not be construed as beinglimited in any way. Additionally, it should be understood that thescreen display 600A is one contemplated embodiment of the display 138.

The screen display 600A can include various menus and/or menu options(not shown in FIG. 6A). The screen display 600A also can include anaugmented reality display 602. The augmented reality display 602 can beviewed and/or interacted with by a user or other entity to access and/orview the display data 136 as an overlay for an image of a realenvironment 604. In the illustrated embodiment, the real environment 604is illustrated as a retail location. It should be understood that thisexample is illustrative and therefore should not be construed as beinglimiting in any way.

In the illustrated embodiment, the real environment 604 is shown asincluding two or more shelving units 606A-N (hereinafter collectivelyand/or generically referred to as “shelving units 606”). Products and/orother items (“items”) 608 are illustrated as being located on or at theshelving units 606. The items 608 can include, for example, groceryitems; office supplies; other products or items such as computers,computer components, clothing, food items, books, periodicals, drugs orhealth products, combinations thereof; or the like. It should beappreciated that the items 608 can include almost any type of itemsincluding indicia for bulky items, indicia for services, combinationsthereof, or the like. Thus, the numbered items 608 shown in FIG. 6Ashould be understood as being merely illustrative of various items 608that can be located at or near the shelving units 606 and/or otherlocations.

According to various embodiments, a user may wish to see display data136 associated with a location such as, for example, the realenvironment 604. Various types of input may be entered at or using auser device and/or other devices. In response to the input, a display138 can be generated, for example, at a user device 102 such as the userdevice 102 shown in FIGS. 1 and 6A, among others. The display 138 caninclude the augmented reality display 602 to present the display data136 in a meaningful way at the user device 102.

As shown in FIG. 6A, the augmented reality display 602 can include auser shopping guide window 610. The user shopping guide window 610 canprovide an indication, to a user or other entity, of a next item on ashopping list or other list. The user shopping guide window 610 canprovide information that identifies the next item on a shopping list ingeneral or particular terms. For example, the user shopping guide window610 could identify a next item as sauce (generally), or specificallyidentify a brand, size, price, or the like, such as “Brand A Sauce in atwenty four ounce bottle” with an associated price, etc. In theillustrated embodiment, the user shopping guide window 610 provides anindication that the next item on the shopping list or other list isBrand A sauce along with other information such as size and price. Itshould be understood that this example is illustrative and thereforeshould not be construed as being limiting in any way. It also should beunderstood that pricing information can be drawn from historyinformation, from store or retailer systems, from promotion information,combinations thereof, or the like.

The user shopping guide window 610 also can present a UI control 612 todismiss the user shopping guide window 610 and a UI control 614 to guidethe user to the next item on the shopping list or other list. Inresponse to selection of the UI control 612, the user device 102 canupdate the display to hide the user shopping guide window 610. Inresponse to selection of the UI control 614, the user device 102 canupdate the display to shown directions or an indication for locating thenext item on the shopping list or other list. Because additional and/oralternative UI controls can be included in the user shopping guidewindow 610, it should be understood that these examples are illustrativeand therefore should not be construed as being limiting in any way.

While the user shopping guide window 610 is illustrated as showing aparticular brand of sauce and other information such as a size of thecontainer and a price, it should be understood that this information(the brand) may or may not be included in the shopping list. Inparticular, a brand for a particular item may be determined based uponhistory information (e.g., what brand the user previously purchased,most recently purchased, or most frequently purchased), preferences,brands that are available at a current location, compatibilityinformation (e.g., gluten-free, kosher, or the like), brands for whichcoupons are available, combinations thereof, or the like. As such, theillustrated embodiment should be understood as being illustrative andshould not be construed as being limiting in any way.

Referring now to FIG. 6B, additional aspects of the concepts andtechnologies disclosed herein for configuring and/or interacting with ashopping application 108 and/or a shopping service 110 are described indetail. In particular, FIG. 6B shows an illustrative screen display 600Bgenerated by a device such as the user device 102. It should beappreciated that the UI diagram illustrated in FIG. 6B is illustrativeof one contemplated example of a UI and therefore should not beconstrued as being limited in any way. As shown in FIG. 6B, the screendisplay 600B can be presented on a mobile computing device such as asmartphone, if desired. It should be understood that this example isillustrative, and should not be construed as being limiting in any way.Additionally, it should be understood that the screen display 600B isone contemplated embodiment of the display 138.

The screen display 600B can be displayed by the user device 102, forexample, in response to selection of the UI control 614 illustrated anddescribed above with regard to FIG. 6A or another command to guide theuser or other entity to a next item on the shopping list. It can beappreciated with collective reference to FIGS. 6A-6B that the realenvironment 604 shown in FIG. 6B can be the same as the real environment604 shown in FIG. 6A, though a different screen display 600B may bepresented on the user device 102. It can be appreciated from thedescription above that this embodiment is illustrative and thereforeshould not be construed as being limiting in any way.

In the screen display 600B shown in FIG. 6B, another augmented realitydisplay 602 is illustrated with an alternative embodiment of the usershopping guide window 610 illustrated and described above with referenceto FIG. 6A. In the embodiment shown in FIG. 6B, the user shopping guidewindow 610 has been hidden from view and instead a virtual shelf 616 isshown in the augmented reality display 602. It should be understood thatthis example is illustrative and therefore should not be construed asbeing limiting in any way.

The virtual shelf 616 can include an indication of the next item on theshopping list and can include a pointer 618. The pointer 618 can pointto a location depicted in the augmented reality display 602 thatcorresponds to the location of the next item on the shopping list,though the pointer 618 can be omitted according to various embodiments.The virtual shelf 616 also can include one or more alternative productchoices or purchase options (“product alternatives”) 620A-N (hereinaftercollectively and/or generically referred to as “product alternatives620”). It should be understood that this example is illustrative andtherefore should not be construed as being limiting in any way.

As shown in FIG. 6B, the product alternatives 620 can includeindications of products that are similar to the next item on theshopping list. In some embodiments, the product alternatives 620 may beobtained from the shopping service 110. As such, it can be appreciatedthat the shopping service 110 may use the shopping data 116 to identifyalternatives previously purchased by the user, or otherwise indicated asbeing alternatives for the user. In some other embodiments, the shoppingservice 110 may access one or more promotions 128 such as saleinformation, coupons, or the like, to identify similar products that maybe on sale, that may have available a coupon or other promotion, or thelike. Regardless of how the alternatives are identified, the productalternatives 620 can be generated and presented on a virtual shelf 616to enable the user to consider the purchase options before buying thenext item on the list.

With reference to FIG. 6B, it can be appreciated that the productalternatives 620A, 620B can be purchased online, while the productalternative 620N may be purchased in-store. Thus, the virtual shelf 616also can include UI controls 622 to buy the product indicated by therespective product alternatives 620 online and/or a UI control 624 toguide the user to the product indicated by the product alternative 620N.It should be appreciated that selection of the UI control 624 can promptthe user device 102 to update the display in a manner similar to thatillustrated and described herein with regard to selection of the UIcontrol 614. It should be understood that this example is illustrativeand therefore should not be construed as being limiting in any way.

The virtual shelf 616 also can include a UI control 626. The UI control626 can be used to prompt the user device 102 to obtain additionalproduct alternatives 620. It can be appreciated that selection of the UIcontrol 626 can prompt the user device 102 to display additional productalternatives 620 and/or to access the shopping service 110 to obtaindata to generate and/or display additional product alternatives 620.Because additional product alternatives 620 can be obtained and/ordisplayed in additional and/or alternative manners, it should beunderstood that this example is illustrative and therefore should not beconstrued as being limiting in any way.

Turning now to FIG. 6C, additional aspects of the concepts andtechnologies disclosed herein for interacting with and/or providingfunctionality associated with a shopping application 108 and/or ashopping service 110 are described in detail. In particular, FIG. 6Cshows a screen display 600C that may be generated by and/or presentedusing a device such as the user device 102 via execution and/orinteraction with a shopping application 108 and/or via interactions witha shopping service 110. For purposes of illustrating and describing theconcepts and technologies described herein, the screen display 600C isillustrated as if a user or other entity selected the UI control 624shown in FIG. 6B. Because the screen display 600C can be shown atadditional and/or alternative times and/or in response to other triggersor commands, it should be understood that this example is illustrativeand therefore should not be construed as being limiting in any way.Additionally, it should be understood that the screen display 600C isone contemplated embodiment of the display 138.

In the screen display 600C shown in FIG. 6C, the augmented realitydisplay 602 has been updated to modify the virtual shelf 616. Inparticular, the virtual shelf 616 has been modified to show only theproduct alternative 620N shown in FIG. 6B in response to a user or otherentity selecting the UI control 624. Additionally, as can be seen inFIG. 6C, the pointer 618 associated with the virtual shelf 616 has beenmodified to point to a location depicted in the augmented realitydisplay 602 that corresponds to the location of the item associated withthe product alternative 620N. Because the pointer 618 can be substitutedwith other graphic elements such as arrows, crosshairs, dots, or can beomitted entirely, it should be understood that this example isillustrative and therefore should not be construed as being limiting inany way.

In generating the screen display 600C, it can be appreciated that theuser device 102 and/or the server computer 112 can exchange data and/oraccess various data sources to generate the display data 136. In someembodiments, for example, the user device 102 can obtain informationfrom the shopping service 110 and use the data obtained from theshopping service 110 to generate the display data 136. In some otherembodiments, the shopping service 110 can generate the display data 136and provide the display data 136 to the user device 102.

Referring now to FIG. 6D, additional aspects of the concepts andtechnologies disclosed herein for configuring and/or interacting with ashopping application 108 and/or a shopping service 110 are described indetail. In particular, FIG. 6D shows an illustrative screen display 600Dgenerated by a device such as the user device 102. It should beappreciated that the UI diagram illustrated in FIG. 6D is illustrativeof one contemplated example of a UI and therefore should not beconstrued as being limited in any way. As shown in FIG. 6D, the screendisplay 600D can be presented on a mobile computing device such as asmartphone, if desired. It should be understood that this example isillustrative, and should not be construed as being limiting in any way.Additionally, it should be understood that the screen display 600D isone contemplated embodiment of the display 138.

The screen display 600D can include a product or item reference window(“product reference window”) 630. The product reference window 630 canbe displayed by the user device 102, for example, in response to theshopping application 108 executing at the user device 102 detecting aproduct reference in an incoming communication such as the communication140. The incoming communication can correspond, for example, to anemail, a text message, an SMS message, a social networking update, anupdate detected with respect to a shared shopping list, combinationsthereof, or the like. For purposes of illustrating and describing theconcepts and technologies described herein, the product reference window630 is illustrated and described as indicating that a text message thatincludes a product reference has been received. Because the productreference can be detected in other manners and/or other types ofcommunications 140, it should be understood that this example isillustrative and therefore should not be construed as being limiting inany way.

As shown in FIG. 6D, the product reference window 630 can indicate to auser or other entity that a produce reference has been detected in someaction, activity, communication, or the like occurring at or inassociation with the user device 102. In the illustrated embodiment, theproduct reference window 630 can include an indication 632 that data oractivity including a product reference has been detected in an incomingcommunication such as the communication 140. It should be understoodthat this example is illustrative and therefore should not be construedas being limiting in any way.

In the illustrated embodiment, the indication 632 displayed in theproduct reference window 630 can indicate a type of communication oractivity with which the product reference has been detected, as well asa time, date, and/or other information that can be used to provide auser or other entity with information relating to the activity or actionthat prompted the user device 102 to display the product referencewindow 630. In the illustrated embodiment, the indication 632 indicatesthat a text message received by the user device 102 included words thatprompted the shopping application 108 to generate the product referencewindow 630. It should be understood that this example is illustrativeand therefore should not be construed as being limiting in any way.

In the illustrated embodiment, the product reference window 630 displaysa reproduced version 634 of the communication such as the communication140, though this is not necessarily the case. As shown in FIG. 6D, theconcepts and technologies described herein can include displaying one ormore markers 636. The markers 636 can indicate the language, number,image, or reference within the reproduced version 634 of thecommunication (or other activity) that has been interpreted by the userdevice 102 as a product reference or item reference. In FIG. 6D, themarkers 636 mark words that have been interpreted by the user device 102as product or item references. It should be understood that this exampleis illustrative and therefore should not be construed as being limitingin any way.

The product reference window 630 also can include a suggestion 638 thatcan be based upon the detected product reference. In FIG. 6D, thesuggestion 638 can include a suggestion to add the product or itemassociated with the product or item reference to a shopping list. Itshould be understood that this example is illustrative. Othersuggestions 638 can include, for example, ordering an item online,checking a price of an item, looking for coupons or alternatives to theitem, combinations thereof, or the like. In the illustrated embodiment,the suggestion 638 can include product and packaging identifiers(“identifiers”) 640. The identifiers 640 can be visually tied to themarkers 636 to illustrate to a user or other entity how the suggestion638 is based upon the communication or activity that prompted creationand/or display of the product reference window 630. It should beunderstood that this example is illustrative and therefore should not beconstrued as being limiting in any way.

The screen display 600D can include a UI control 642. Selection of theUI control 642 can cause the user device 102 to ignore the detectedproduct or item reference and/or the suggested action proposed inresponse to detecting the product or item reference. Thus, it can beappreciated that selection of the UI control 642 can cause the userdevice 102 to hide the product reference window 630 and/or ignore theproduct reference. The screen display 600D also can include a UI control644. Selection of the UI control 644 can cause the user device 102 toadd the product illustrated in the suggestion 638 to a shopping list, orthe like. Because other actions can be suggested as noted above, itshould be understood that the UI control 644 can be substituted for UIcontrols that prompt other actions by the user device 102. As such, theillustrated embodiment should not be construed as being limiting in anyway.

Referring now to FIG. 6E, additional aspects of the concepts andtechnologies disclosed herein for configuring and/or interacting with ashopping application 108 and/or a shopping service 110 are described indetail. In particular, FIG. 6E shows an illustrative screen display 600Egenerated by a device such as the user device 102. It should beappreciated that the UI diagram illustrated in FIG. 6E is illustrativeof one contemplated example of a UI and therefore should not beconstrued as being limited in any way. As shown in FIG. 6E, the screendisplay 600E can be presented on a mobile computing device such as asmartphone, if desired. It should be understood that this example isillustrative, and should not be construed as being limiting in any way.Additionally, it should be understood that the screen display 600E isone contemplated embodiment of the display 138.

The screen display 600E can include a coupon or other promotionavailable window (“coupon available window”) 650. The coupon availablewindow 650 can be displayed by the user device 102, for example, inresponse to the shopping application 108 executing at the user device102 detecting that a coupon or other promotion is available for aproduct on a shopping list, for a product associated with a purchasehistory of a user (at the location or elsewhere), or the like. Thecoupon available window 650 also can be generated in response to acommunication 140 sent to the user device 102, where the communication140 can indicate that the coupon or other promotion is available.Because the coupon available window 650 can be presented in response toother triggers and/or at other times, it should be understood that thisexample is illustrative and therefore should not be construed as beinglimiting in any way.

As shown in FIG. 6E, the coupon available window 650 can indicate to auser or other entity that a coupon or other promotion is available for aparticular product. Although not included in all embodiments, the couponavailable window 650 can include history information 652. The historyinformation can be associated with the user, the user device 102, and/orthe current location. Thus, as shown in FIG. 6E, the history information652 can include an indication that a user previously purchased aparticular item at the location. It should be understood that thisexample is illustrative and therefore should not be construed as beinglimiting in any way.

The coupon available window 650 also can include coupon information 654that can indicate a promotion or the like associated with the coupon orother promotion that is available. Thus, the coupon information 654 canindicate an amount off of a purchase price, a percentage off a purchaseprice, and/or other details associated with the promotion such as, forexample, buy one get one free offers, or the like.

The coupon available window 650 also can include a suggestion 656. Thesuggestion 656 can include a suggestion to add the product associatedwith the product reference to a shopping list, or the like, as explainedabove in detail with reference to FIG. 6D. As noted above, thesuggestion 638 also can include, for example, a suggestion to order anitem online, a suggestion to check a price of the item, a suggestion topurchase a similar or equivalent item, a suggestion to search forcoupons for the item, a suggestion to consider alternatives to the item,combinations thereof, or the like. Because other suggestions 638 arepossible and are contemplated, it should be understood that theseexamples are illustrative and therefore should not be construed as beinglimiting in any way.

The screen display 600E can include a UI control 658. Selection of theUI control 658 can cause the user device 102 to ignore the coupon orother promotion and/or to take no action with respect to the coupon orother promotion. Thus, it can be appreciated that selection of the UIcontrol 658 can cause the user device 102 to hide the coupon availablewindow 650 and/or to ignore the coupon or other promotion. In someembodiments, the user device 102 can take one or more actions to savethe coupon or other promotion for later use, or the like, instead ofignoring the coupon or other promotion. The screen display 600E also caninclude a UI control 660. Selection of the UI control 660 can cause theuser device 102 to add the product illustrated in the suggestion 656 toa shopping list, or the like. Because other actions can be suggested asnoted above, it should be understood that the UI control 660 can besubstituted for UI controls that prompt other actions by the user device102. As such, the illustrated embodiment should not be construed asbeing limiting in any way.

Referring now to FIG. 6F, additional aspects of the concepts andtechnologies disclosed herein for configuring and/or interacting with ashopping application 108 and/or a shopping service 110 are described indetail. In particular, FIG. 6F shows an illustrative screen display 600Fgenerated by a device such as the user device 102. It should beappreciated that the UI diagram illustrated in FIG. 6F is illustrativeof one contemplated example of a UI and therefore should not beconstrued as being limited in any way. As shown in FIG. 6F, the screendisplay 600F can be presented on a mobile computing device such as asmartphone, if desired. It should be understood that this example isillustrative, and should not be construed as being limiting in any way.Additionally, it should be understood that the screen display 600F isone contemplated embodiment of the display 138.

The screen display 600F can include a compatibility information window670. The compatibility information window 670 can be displayed by theuser device 102, for example, in response to the shopping application108 executing at the user device 102 detecting that an item or producthas been purchased, searched, scanned, or otherwise interacted with in amanner that suggests the user is considering a purchase. Thecompatibility information window 670 also can be generated in responseto detecting an item or product being added to a shopping list,suggested as an alternative, or the like. Because the compatibilityinformation window 670 can be presented in response to other triggersand/or at other times, it should be understood that this example isillustrative and therefore should not be construed as being limiting inany way.

As shown in FIG. 6F, the compatibility information window 670 canindicate to a user or other entity that an item being purchased,considered for purchase, searched, scanned, or otherwise interacted withis or is not compatible with the user; with the user's office, home,room, or other space; with the user's car, truck, or other mode oftransportation; or other entity, place, or the like associated with theuser. The item or product may be determined to be incompatible, forexample, based upon a size or weight associated with the item, basedupon an amount of room or space available at a particular location,based upon ingredients of the item, based upon needs or preferences ofthe user, combinations thereof, or the like.

Although not included in all embodiments, the compatibility informationwindow 670 can include information that identifies the product or itemdetected as being considered for purchase and dimensions for the productor item. While the illustrated embodiment of the compatibilityinformation window 670 provides dimensions of the product and/orpackaging, it should be understood that the compatibility informationwindow 670 may instead provide a weight or other aspect of the item orproduct that may or may not be compatible with the user in some way suchas ingredients of the item, or the like.

In the illustrated embodiment, the user or other entity can enter datarelating to the user's car (e.g., a make, model, year, and/or trim levelof the vehicle) at any time and/or as part of a setup process. The useror other entity also can enter the user's carrying weight maximum (e.g.,the user may indicate that he or she is comfortable carrying up tothirty pounds, for example); dimensions of a room, home, office, orother space; body dimensions of the user; combinations thereof, or thelike. Thus, as shown in FIG. 6F, the compatibility information window670 can include an indication that the product or item being consideredfor purchase is or is not compatible with the user. It should beunderstood that this example is illustrative and therefore should not beconstrued as being limiting in any way.

In the illustrated embodiment, the compatibility information window 670indicates that the assembled product or item is incompatible with theuser's car, but that the box or package of the unassembled product oritem will fit in the user's car. It should be understood that thisexample is illustrative and therefore should not be construed as beinglimiting in any way. The screen display 600F can include a UI control672. Selection of the UI control 672 can cause the user device 102 tohide the compatibility information window 670 and/or to take otheractions.

The screen display 600F also can include a UI control 674. Selection ofthe UI control 674 can cause the user device 102 to present a screen,field, or other display elements to enable a user to update data used togenerate the compatibility information window 670. Thus, for example, auser may update stored vehicle information, room dimensions, or thelike. Because other actions can be taken instead of dismissing thecompatibility information window 670 and/or updating the data used togenerate the compatibility information window 670, the illustratedembodiment should not be construed as being limiting in any way.

FIG. 6G shows an illustrative screen display 600G, which can begenerated by a device such as the user device 102. According to variousembodiments, the user device 102 can generate the screen display 600Gand/or other screen displays in conjunction with and/or based uponactivation of the shopping application 108 and/or via interactions withthe shopping service 110 described herein, for example using a webbrowser, a stand-alone application, combinations thereof, or the like.It should be appreciated that the UI diagram illustrated in FIG. 6G isillustrative of one contemplated example of the UIs that can begenerated and/or displayed in accordance with the concepts andtechnologies disclosed herein, and therefore should not be construed asbeing limited in any way. Additionally, it should be understood that thescreen display 600G is one contemplated embodiment of the display 138.

It should be appreciated that the screen display 600G can be presented,for example, in response to detecting selection of an option to manageoptions or settings for the shopping application 108 and/or the shoppingservice 110, in response to an interaction with the shopping application108 and/or the shopping service 110, upon selecting the UI control 674illustrated and described in FIG. 6F, based upon other triggers orevents, combinations thereof, or the like. Because the screen display600G illustrated in FIG. 6G can be displayed at additional and/oralternative times, it should be understood that this example isillustrative and therefore should not be construed as being limiting inany way.

The screen display 600G also can include a shopping service or shoppingapplication options display (“options display 680”). The options display680 can be configured to allow a user or other entity to control variouspreferences as illustrated and described herein, including but notlimited to various application options associated with the shoppingapplication 108, various service options associated with the shoppingservice 110, and the like, some illustrative examples of which are shownin FIG. 6G. As shown in FIG. 6G, the options display 680 can include anumber of data collection options 682A-E (hereinafter collectivelyand/or generically referred to as “data collection options 682”). Eachof the data collection options 682 can have a corresponding datacollection selector 684A-E (hereinafter collectively and/or genericallyreferred to as “data collection selectors 684”).

A user or other entity can interact with the data collection selectors684 to specify whether a corresponding data collection option 682 isenabled or disabled, as generally is understood. In the illustratedembodiment, the data collection selector 684A can be used to enable ordisable an option to allow the shopping application 108 and/or theshopping service 110 to use location information relating to the userdevice 102 to provide the functionality illustrated and describedherein. The data collection selector 684B can be used to enable ordisable an option to allow the shopping application 108 and/or theshopping service 110 to allow tracking of orientation of the user device102. Thus, if the data collection selector is disabled, the user device102 may disable or may not access sensor readings associated with one ormore orientation sensors as illustrated and described herein. It shouldbe understood that this example is illustrative and therefore should notbe construed as being limiting in any way.

The data collection selector 684C can be used to enable or disable anoption to allow the shopping application 108 and/or the shopping service110 to analyze incoming communications 140 at the user device 102 toidentify item references as illustrated and described herein. It shouldbe understood from the above description of the communications 140 thatadditional or alternative options may be provided for allowingmonitoring or analysis of outgoing communications 140 and/orcommunications elsewhere (e.g., not at the user device 102). As such,the illustrated embodiment should not be construed as being limiting inany way.

The data collection selector 684D can be used to enable or disable anoption to allow the shopping application 108 and/or the shopping service110 to store object scans such as barcode scans, label scans, or thelike. The data collection selector 684E can be used to enable or disablean option to allow the shopping application 108 and/or the shoppingservice 110 to access shopping lists stored at or accessible to the userdevice 102 as illustrated and described herein. Because additionaland/or alternative data collection options 682 and/or data collectionselectors 684 can be included in the options display 680, it should beunderstood that these examples are illustrative and therefore should notbe construed as being limiting in any way.

The options display 680 also can be configured to allow a user or otherentity to control what data sources 122 may be accessed by the shoppingapplication 108 and/or the shopping service 110. In particular, as shownin FIG. 6G, the options display 680 can include a number of data sourceindicators 686A-D (hereinafter collectively and/or generically referredto as “data source indicators 686”). Each of the data source indicators686 can have corresponding data source controls 688A-D (hereinaftercollectively and/or generically referred to as “data source controls688”).

A user or other entity can interact with the data source controls 688 tospecify a binary yes/no, true/false, activated/inactivated,enabled/disabled, or other indicator for a corresponding data sourceindicator 686. In some embodiments, the binary setting can be replacedwith or supplemented by a multi-faceted response field, for example adrop down list that can include two or more choices. For example, theaccess location services data source indicator 686A can have a dropdownlist of settings instead of the illustrated data source control 688A.The dropdown list or other control can include settings of “Always,”“Never,” and/or other options such as specific times or situations underwhich access to location services will be allowed, restricted, denied,or other options. Thus, while in the illustrated embodiment the datasource controls 688 can provide a binary setting for selection by theuser or other entity, it should be understood that this example isillustrative and therefore should not be construed as being limiting inany way.

In the illustrated embodiment, the data source control 688A can be usedto activate or deactivate an option to allow the shopping application108 and/or the shopping service 110 to access one or more locationservices 130 to determine a location or obtain location data 124associated with the user device 102. The data source control 688B can beused to activate or deactivate an option to allow the shoppingapplication 108 and/or the shopping service 110 to access one or moreoffer sources 132 to identify offers 126 is illustrated and describedherein. The data source control 688C can be used to activate ordeactivate an option to allow the shopping application 108 and/or theshopping service 110 to access one or more promotion sources 134 toobtain promotions 128 as illustrated and described herein. The datasource control 688D can be used to activate or deactivate an option toallow the shopping application 108 and/or the shopping service 110 tostore vehicle information associated with the user. It can beappreciated that the vehicle information is one embodiment of thecompatibility data illustrated and described herein, and as such, othertypes of compatibility data can be input and/or enabled in the screendisplay 600G. Because additional and/or alternative data source controls688 can be included in the options display 680, it should be understoodthat these examples are illustrative and therefore should not beconstrued as being limiting in any way.

As shown in FIG. 6G, one or more of the data source indicators 686 canbe displayed with a select options control 690. Selection of the selectoptions control 690 associated with a particular data source indicator686 can cause the user device 102 to display a window or other userinterface or user interface element for updating data source options.Thus, a user or other entity can add, change, or delete a data sourceusing one or more of the select options controls 690.

The options display 680 also can include a user interface (“UI”) control692. The UI control 692 can be configured to allow a user or otherentity to add a compatibility data source and/or compatibility data.Upon selection or other interaction with the UI control 692, the userdevice 102 can interact with the shopping application 108 and/or theshopping service 110 to add compatibility data or other informationassociated with the user, the user device 102, or other entities,locations, or the like. According to some embodiments, selection of theUI control 692 can result in display of a user interface for adding acompatibility data, though not shown in the FIGURES. Becausecompatibility data can be created or added in additional and/oralternative ways, it should be understood that this example isillustrative and therefore should not be construed as being limiting inany way.

Turning now to FIG. 7, additional details of the network 104 areillustrated, according to an illustrative embodiment. The network 104includes a cellular network 702, a packet data network 704, for example,the Internet, and a circuit switched network 706, for example, apublicly switched telephone network (“PSTN”). The cellular network 702includes various components such as, but not limited to, basetransceiver stations (“BTSs”), Node-B's or e-Node-B's, base stationcontrollers (“BSCs”), radio network controllers (“RNCs”), mobileswitching centers (“MSCs”), mobile management entities (“MME5”), shortmessage service centers (“SMSCs”), multimedia messaging service centers(“MMSCs”), home location registers (“HLR5”), home subscriber servers(“HSSs”), visitor location registers (“VLR5”), charging platforms,billing platforms, voicemail platforms, GPRS core network components,location service nodes, an IP Multimedia Subsystem (“IMS”), and thelike. The cellular network 702 also includes radios and nodes forreceiving and transmitting voice, data, and combinations thereof to andfrom radio transceivers, networks, the packet data network 704, and thecircuit switched network 706.

A mobile communications device 708, such as, for example, a cellulartelephone, a user equipment, a mobile terminal, a PDA, a laptopcomputer, a handheld computer, and combinations thereof, can beoperatively connected to the cellular network 702. The cellular network702 can be configured as a 2G GSM network and can provide datacommunications via GPRS and/or EDGE. Additionally, or alternatively, thecellular network 702 can be configured as a 3G UMTS network and canprovide data communications via the HSPA protocol family, for example,HSDPA, EUL (also referred to as HSUPA), and HSPA+. The cellular network702 also is compatible with 4G mobile communications standards as wellas evolved and future mobile standards.

The packet data network 704 includes various devices, for example,servers, computers, databases, and other devices in communication withanother, as is generally known. The packet data network 704 devices areaccessible via one or more network links. The servers often storevarious files that are provided to a requesting device such as, forexample, a computer, a terminal, a smartphone, or the like. Typically,the requesting device includes software (a “browser”) for executing aweb page in a format readable by the browser or other software. Otherfiles and/or data may be accessible via “links” in the retrieved files,as is generally known. In some embodiments, the packet data network 704includes or is in communication with the Internet. The circuit switchednetwork 706 includes various hardware and software for providing circuitswitched communications. The circuit switched network 706 may include,or may be, what is often referred to as a plain old telephone system(POTS). The functionality of a circuit switched network 706 or othercircuit-switched network are generally known and will not be describedherein in detail.

The illustrated cellular network 702 is shown in communication with thepacket data network 704 and a circuit switched network 706, though itshould be appreciated that this is not necessarily the case. One or moreInternet-capable devices 710, for example, a PC, a laptop, a portabledevice, or another suitable device, can communicate with one or morecellular networks 702, and devices connected thereto, through the packetdata network 704. It also should be appreciated that theInternet-capable device 710 can communicate with the packet data network704 through the circuit switched network 706, the cellular network 702,and/or via other networks (not illustrated).

As illustrated, a communications device 712, for example, a telephone,facsimile machine, modem, computer, or the like, can be in communicationwith the circuit switched network 706, and therethrough to the packetdata network 704 and/or the cellular network 702. It should beappreciated that the communications device 712 can be anInternet-capable device, and can be substantially similar to theInternet-capable device 710. In the specification, the network 104 isused to refer broadly to any combination of the networks 702, 704, 706.It should be appreciated that substantially all of the functionalitydescribed with reference to the network 104 can be performed by thecellular network 702, the packet data network 704, and/or the circuitswitched network 706, alone or in combination with other networks,network elements, and the like.

FIG. 8 is a block diagram illustrating a computer system 800 configuredto provide the functionality described herein for presenting augmentedreality shopping displays, in accordance with various embodiments of theconcepts and technologies disclosed herein. The computer system 800includes a processing unit 802, a memory 804, one or more user interfacedevices 806, one or more input/output (“I/O”) devices 808, and one ormore network devices 810, each of which is operatively connected to asystem bus 812. The bus 812 enables bi-directional communication betweenthe processing unit 802, the memory 804, the user interface devices 806,the I/O devices 808, and the network devices 810.

The processing unit 802 may be a standard central processor thatperforms arithmetic and logical operations, a more specific purposeprogrammable logic controller (“PLC”), a programmable gate array, orother type of processor known to those skilled in the art and suitablefor controlling the operation of the server computer. As used herein,the word “processor” and/or the phrase “processing unit” when used withregard to any architecture or system can include multiple processors orprocessing units distributed across and/or operating in parallel in asingle machine or in multiple machines. Furthermore, processors and/orprocessing units can be used to support virtual processing environments.Processors and processing units also can include state machines,application-specific integrated circuits (“ASICs”), combinationsthereof, or the like. Because processors and/or processing units aregenerally known, the processors and processing units disclosed hereinwill not be described in further detail herein.

The memory 804 communicates with the processing unit 802 via the systembus 812. In some embodiments, the memory 804 is operatively connected toa memory controller (not shown) that enables communication with theprocessing unit 802 via the system bus 812. The memory 804 includes anoperating system 814 and one or more program modules 816. The operatingsystem 814 can include, but is not limited to, members of the WINDOWS,WINDOWS CE, and/or WINDOWS MOBILE families of operating systems fromMICROSOFT CORPORATION, the LINUX family of operating systems, theSYMBIAN family of operating systems from SYMBIAN LIMITED, the BREWfamily of operating systems from QUALCOMM CORPORATION, the MAC OS, iOS,and/or LEOPARD families of operating systems from APPLE CORPORATION, theFREEBSD family of operating systems, the SOLARIS family of operatingsystems from ORACLE CORPORATION, other operating systems, and the like.

The program modules 816 may include various software and/or programmodules described herein. In some embodiments, for example, the programmodules 816 include the shopping application 108 and/or the shoppingservice 110. These and/or other programs can be embodied incomputer-readable media containing instructions that, when executed bythe processing unit 802, perform one or more of the methods 200, 300,400, 500 described in detail above with respect to FIGS. 2-5. Accordingto embodiments, the program modules 816 may be embodied in hardware,software, firmware, or any combination thereof. Although not shown inFIG. 8, it should be understood that the memory 804 also can beconfigured to store the user data 114, the shopping data 116, thecollected data 120, the display data 136, the display 138, thecommunication 140, and/or other data, if desired.

By way of example, and not limitation, computer-readable media mayinclude any available computer storage media or communication media thatcan be accessed by the computer system 800. Communication media includescomputer-readable instructions, data structures, program modules, orother data in a modulated data signal such as a carrier wave or othertransport mechanism and includes any delivery media. The term “modulateddata signal” means a signal that has one or more of its characteristicschanged or set in a manner as to encode information in the signal. Byway of example, and not limitation, communication media includes wiredmedia such as a wired network or direct-wired connection, and wirelessmedia such as acoustic, RF, infrared and other wireless media.Combinations of the any of the above should also be included within thescope of computer-readable media.

Computer storage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules, or other data. Computer storage media includes, but isnot limited to, RAM, ROM, Erasable Programmable ROM (“EPROM”),Electrically Erasable Programmable ROM (“EEPROM”), flash memory or othersolid state memory technology, CD-ROM, digital versatile disks (“DVD”),or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and which can beaccessed by the computer system 800. In the claims, the phrase “computerstorage medium” and variations thereof does not include waves or signalsper se and/or communication media.

The user interface devices 806 may include one or more devices withwhich a user accesses the computer system 800. The user interfacedevices 806 may include, but are not limited to, computers, servers,personal digital assistants, cellular phones, or any suitable computingdevices. The I/O devices 808 enable a user to interface with the programmodules 816. In one embodiment, the I/O devices 808 are operativelyconnected to an I/O controller (not shown) that enables communicationwith the processing unit 802 via the system bus 812. The I/O devices 808may include one or more input devices, such as, but not limited to, akeyboard, a mouse, or an electronic stylus. Further, the I/O devices 808may include one or more output devices, such as, but not limited to, adisplay screen or a printer.

The network devices 810 enable the computer system 800 to communicatewith other networks or remote systems via a network, such as the network104. Examples of the network devices 810 include, but are not limitedto, a modem, a radio frequency (“RF”) or infrared (“IR”) transceiver, atelephonic interface, a bridge, a router, or a network card. The network104 may include a wireless network such as, but not limited to, aWireless Local Area Network (“WLAN”) such as a WI-FI network, a WirelessWide Area Network (“WWAN”), a Wireless Personal Area Network (“WPAN”)such as BLUETOOTH, a Wireless Metropolitan Area Network (“WMAN”) such aWiMAX network, or a cellular network. Alternatively, the network 104 maybe a wired network such as, but not limited to, a Wide Area Network(“WAN”) such as the Internet, a Local Area Network (“LAN”) such as theEthernet, a wired Personal Area Network (“PAN”), or a wired MetropolitanArea Network (“MAN”).

Turning now to FIG. 9, an illustrative mobile device 900 and componentsthereof will be described. In some embodiments, the user device 102described above with reference to FIGS. 1-7 can be configured as and/orcan have an architecture similar or identical to the mobile device 900described herein in FIG. 9. It should be understood, however, that theuser device 102 may or may not include the functionality describedherein with reference to FIG. 9. While connections are not shown betweenthe various components illustrated in FIG. 9, it should be understoodthat some, none, or all of the components illustrated in FIG. 9 can beconfigured to interact with one other to carry out various devicefunctions. In some embodiments, the components are arranged so as tocommunicate via one or more busses (not shown). Thus, it should beunderstood that FIG. 9 and the following description are intended toprovide a general understanding of a suitable environment in whichvarious aspects of embodiments can be implemented, and should not beconstrued as being limiting in any way.

As illustrated in FIG. 9, the mobile device 900 can include a display902 for displaying data. According to various embodiments, the display902 can be configured to display various graphical user interface(“GUI”) elements for obtaining preferences, obtaining input from theuser, presenting display data 136 (e.g., within a display 138),presenting a shopping route, presenting shopping lists and/or allowinginteraction with shopping lists, presenting compatibility information,text, images, video, virtual keypads and/or keyboards, messaging data,notification messages, metadata, internet content, device status, time,date, calendar data, device preferences, map and location data,combinations thereof, and/or the like. The mobile device 900 also caninclude a processor 904 and a memory or other data storage device(“memory”) 906. The processor 904 can be configured to process dataand/or can execute computer-executable instructions stored in the memory906. The computer-executable instructions executed by the processor 904can include, for example, an operating system 908, one or moreapplications 910 such as the shopping application 108 and/orfunctionality such as that illustrated and described herein withreference to the shopping service 110, other computer-executableinstructions stored in a memory 906, or the like. In some embodiments,the applications 910 also can include a UI application (not illustratedin FIG. 9).

The UI application can interface with the operating system 908, such asthe operating system 106 shown in FIG. 1, to facilitate user interactionwith functionality and/or data stored at the mobile device 900 and/orstored elsewhere. In some embodiments, the operating system 908 caninclude a member of the SYMBIAN OS family of operating systems fromSYMBIAN LIMITED, a member of the WINDOWS MOBILE OS and/or WINDOWS PHONEOS families of operating systems from MICROSOFT CORPORATION, a member ofthe PALM WEBOS family of operating systems from HEWLETT PACKARDCORPORATION, a member of the BLACKBERRY OS family of operating systemsfrom RESEARCH IN MOTION LIMITED, a member of the IOS family of operatingsystems from APPLE INC., a member of the ANDROID OS family of operatingsystems from GOOGLE INC., and/or other operating systems. Theseoperating systems are merely illustrative of some contemplated operatingsystems that may be used in accordance with various embodiments of theconcepts and technologies described herein and therefore should not beconstrued as being limiting in any way.

The UI application can be executed by the processor 904 to aid a user inentering preferences; creating, maintaining, and/or using shoppinglists; navigating through a shopping environment; finding alternativesand/or promotions; displaying object or item references; viewingcompatibility data; interacting with other applications 910; andotherwise facilitating user interaction with the operating system 908,the applications 910, and/or other types or instances of data 912 thatcan be stored at the mobile device 900. The data 912 can include, forexample, the shopping application 108, the shopping service 110, and/orother applications or program modules. According to various embodiments,the data 912 can include, for example, presence applications, visualvoice mail applications, messaging applications, text-to-speech andspeech-to-text applications, add-ons, plug-ins, email applications,music applications, video applications, camera applications,location-based service applications, power conservation applications,game applications, productivity applications, entertainmentapplications, enterprise applications, combinations thereof, and thelike. The applications 910, the data 912, and/or portions thereof can bestored in the memory 906 and/or in a firmware 914, and can be executedby the processor 904. The firmware 914 also can store code for executionduring device power up and power down operations. It can be appreciatedthat the firmware 914 can be stored in a volatile or non-volatile datastorage device including, but not limited to, the memory 906 and/or aportion thereof.

The mobile device 900 also can include an input/output (“I/O”) interface916. The I/O interfaced 916 can be configured to support theinput/output of data such as location information, the user data 114,the shopping data 116, the collected data 120, the display data 136, thedisplay 138, the communication 140, user information, organizationinformation, presence status information, user IDs, passwords, andapplication initiation (start-up) requests. In some embodiments, the I/Ointerface 916 can include a hardwire connection such as a universalserial bus (“USB”) port, a mini-USB port, a micro-USB port, an audiojack, a PS2 port, an IEEE 1394 (“FIREWIRE”) port, a serial port, aparallel port, an Ethernet (RJ411) port, an RJ11 port, a proprietaryport, combinations thereof, or the like. In some embodiments, the mobiledevice 900 can be configured to synchronize with another device totransfer content to and/or from the mobile device 900. In someembodiments, the mobile device 900 can be configured to receive updatesto one or more of the applications 910 via the I/O interface 916, thoughthis is not necessarily the case. In some embodiments, the I/O interface916 accepts I/O devices such as keyboards, keypads, mice, interfacetethers, printers, plotters, external storage, touch/multi-touchscreens, touch pads, trackballs, joysticks, microphones, remote controldevices, displays, projectors, medical equipment (e.g., stethoscopes,heart monitors, and other health metric monitors), modems, routers,external power sources, docking stations, combinations thereof, and thelike. It should be appreciated that the I/O interface 916 may be usedfor communications between the mobile device 900 and a network device orlocal device.

The mobile device 900 also can include a communications component 918.The communications component 918 can be configured to interface with theprocessor 904 to facilitate wired and/or wireless communications withone or more networks such as the network 104 described herein. In someembodiments, other networks include networks that utilize non-cellularwireless technologies such as WI-FI or WIMAX. In some embodiments, thecommunications component 918 includes a multimode communicationssubsystem for facilitating communications via the cellular network andone or more other networks.

The communications component 918, in some embodiments, includes one ormore transceivers. The one or more transceivers, if included, can beconfigured to communicate over the same and/or different wirelesstechnology standards with respect to one another. For example, in someembodiments one or more of the transceivers of the communicationscomponent 918 may be configured to communicate using GSM, CDMAONE,CDMA2000, LTE, and various other 2G, 2.5G, 3G, 4G, and greatergeneration technology standards. Moreover, the communications component918 may facilitate communications over various channel access methods(which may or may not be used by the aforementioned standards)including, but not limited to, TDMA, FDMA, W-CDMA, OFDM, SDMA, and thelike.

In addition, the communications component 918 may facilitate datacommunications using GPRS, EDGE, the HSPA protocol family includingHSDPA, EUL or otherwise termed HSUPA, HSPA+, and various other currentand future wireless data access standards. In the illustratedembodiment, the communications component 918 can include a firsttransceiver (“TxRx”) 920A that can operate in a first communicationsmode (e.g., GSM). The communications component 918 also can include anN^(th) transceiver (“TxRx”) 920N that can operate in a secondcommunications mode relative to the first transceiver 920A (e.g., UMTS).While two transceivers 920A-N (hereinafter collectively and/orgenerically referred to as “transceivers 920”) are shown in FIG. 9, itshould be appreciated that less than two, two, and/or more than twotransceivers 920 can be included in the communications component 918.

The communications component 918 also can include an alternativetransceiver (“Alt TxRx”) 922 for supporting other types and/or standardsof communications. According to various contemplated embodiments, thealternative transceiver 922 can communicate using various communicationstechnologies such as, for example, WI-FI, WIMAX, BLUETOOTH, infrared,infrared data association (“IRDA”), near field communications (“NFC”),other RF technologies, combinations thereof, and the like. In someembodiments, the communications component 918 also can facilitatereception from terrestrial radio networks, digital satellite radionetworks, internet-based radio service networks, combinations thereof,and the like. The communications component 918 can process data from anetwork such as the Internet, an intranet, a broadband network, a WI-FIhotspot, an Internet service provider (“ISP”), a digital subscriber line(“DSL”) provider, a broadband provider, combinations thereof, or thelike.

The mobile device 900 also can include one or more sensors 924. Thesensors 924 can include temperature sensors, light sensors, air qualitysensors, movement sensors, orientation sensors, noise sensors, proximitysensors, or the like. As such, it should be understood that the sensors924 can include, but are not limited to, accelerometers, magnetometers,gyroscopes, infrared sensors, noise sensors, microphones, combinationsthereof, or the like. Additionally, audio capabilities for the mobiledevice 900 may be provided by an audio I/O component 926. The audio I/Ocomponent 926 of the mobile device 900 can include one or more speakersfor the output of audio signals, one or more microphones for thecollection and/or input of audio signals, and/or other audio inputand/or output devices.

The illustrated mobile device 900 also can include a subscriber identitymodule (“SIM”) system 928. The SIM system 928 can include a universalSIM (“USIM”), a universal integrated circuit card (“UICC”) and/or otheridentity devices. The SIM system 928 can include and/or can be connectedto or inserted into an interface such as a slot interface 930. In someembodiments, the slot interface 930 can be configured to acceptinsertion of other identity cards or modules for accessing various typesof networks. Additionally, or alternatively, the slot interface 930 canbe configured to accept multiple subscriber identity cards. Becauseother devices and/or modules for identifying users and/or the mobiledevice 900 are contemplated, it should be understood that theseembodiments are illustrative, and should not be construed as beinglimiting in any way.

The mobile device 900 also can include an image capture and processingsystem 932 (“image system”). The image system 932 can be configured tocapture or otherwise obtain photos, videos, and/or other visualinformation. As such, the image system 932 can include cameras, lenses,charge-coupled devices (“CCDs”), combinations thereof, or the like. Themobile device 900 may also include a video system 934. The video system934 can be configured to capture, process, record, modify, and/or storevideo content. Photos and videos obtained using the image system 932 andthe video system 934, respectively, may be added as message content toan MMS message, email message, and sent to another mobile device. Thevideo and/or photo content also can be shared with other devices viavarious types of data transfers via wired and/or wireless communicationdevices as described herein.

The mobile device 900 also can include one or more location components936. The location components 936 can be configured to send and/orreceive signals to determine a geographic location of the mobile device900. According to various embodiments, the location components 936 cansend and/or receive signals from global positioning system (“GPS”)devices, assisted-GPS (“A-GPS”) devices, WI-FI/WIMAX and/or cellularnetwork triangulation data, combinations thereof, and the like. Thelocation component 936 also can be configured to communicate with thecommunications component 918 to retrieve triangulation data fordetermining a location of the mobile device 900. In some embodiments,the location component 936 can interface with cellular network nodes,telephone lines, satellites, location transmitters and/or beacons,wireless network transmitters and receivers, combinations thereof, andthe like. In some embodiments, the location component 936 can includeand/or can communicate with one or more of the sensors 924 such as acompass, an accelerometer, and/or a gyroscope to determine theorientation of the mobile device 900. Using the location component 936,the mobile device 900 can generate and/or receive data to identify itsgeographic location, or to transmit data used by other devices todetermine the location of the mobile device 900. The location component936 may include multiple components for determining the location and/ororientation of the mobile device 900.

The illustrated mobile device 900 also can include a power source 938.The power source 938 can include one or more batteries, power supplies,power cells, and/or other power subsystems including alternating current(“AC”) and/or direct current (“DC”) power devices. The power source 938also can interface with an external power system or charging equipmentvia a power I/O component 940. Because the mobile device 900 can includeadditional and/or alternative components, the above embodiment should beunderstood as being illustrative of one possible operating environmentfor various embodiments of the concepts and technologies describedherein. The described embodiment of the mobile device 900 isillustrative, and should not be construed as being limiting in any way.

Based on the foregoing, it should be appreciated that systems andmethods for providing augmented reality shopping displays have beendisclosed herein. Although the subject matter presented herein has beendescribed in language specific to computer structural features,methodological and transformative acts, specific computing machinery,and computer-readable media, it is to be understood that the conceptsand technologies disclosed herein are not necessarily limited to thespecific features, acts, or media described herein. Rather, the specificfeatures, acts and mediums are disclosed as example forms ofimplementing the concepts and technologies disclosed herein.

The subject matter described above is provided by way of illustrationonly and should not be construed as limiting. Various modifications andchanges may be made to the subject matter described herein withoutfollowing the example embodiments and applications illustrated anddescribed, and without departing from the true spirit and scope of theembodiments of the concepts and technologies disclosed herein.

I claim:
 1. A method comprising: receiving, at a processor executing ashopping service, a request for display data; analyzing, by theprocessor, shopping data to identify an offer source, the shopping datacomprising user data associated with a requestor; obtaining, by theprocessor, an offer from the offer source; generating, by the processor,display data based upon the offer and the shopping data; and providing,by the processor, the display data to a user device, wherein the displaydata identifies the offer.
 2. The method of claim 1, wherein the userdata comprises object data that identifies an object associated with aninteraction by the user device.
 3. The method of claim 2, wherein theobject comprises an object on a shopping list, and wherein theinteraction comprises a purchase of the object.
 4. The method of claim2, wherein the interaction comprises displaying an augmented realitydisplay that includes a reference to the object, and wherein the displaydata comprises a user interface element comprising a virtual shelf thatincludes the reference.
 5. The method of claim 4, wherein the virtualshelf is displayed by the user device, and wherein a product alternativeis displayed on the virtual shelf.
 6. The method of claim 2, wherein theobject comprises an object that is not on a shopping list, and whereinthe interaction comprises obtaining a promotion relating to the object.7. The method of claim 2, wherein the object data identifies an itemreference included in a communication sent to the user device.
 8. Themethod of claim 1, wherein the user data comprises compatibility dataassociated with a user.
 9. The method of claim 8, wherein thecompatibility data identifies a vehicle associated with the user. 10.The method of claim 8, wherein the compatibility data identifiesdimensions of a structure associated with the user.
 11. A systemcomprising: a processor; and a memory that stores computer-executableinstructions that, when executed by the processor, cause the processorto perform operations comprising receiving a request for display data,analyzing shopping data to identify an offer source, the shopping datacomprising user data associated with a requestor, obtaining an offerfrom the offer source identified, generating display data based upon theoffer and the shopping data, and providing the display data to a userdevice, wherein the display data identifies the offer.
 12. The system ofclaim 11, wherein the user data comprises object data that identifies anobject on a shopping list, and wherein the object is associated with apurchase.
 13. The system of claim 11, wherein the user data comprisesobject data that identifies an object associated with an interaction atthe user device, wherein the interaction comprises displaying anaugmented reality display that includes a reference to the object, andwherein the display data comprises a user interface element comprising avirtual shelf that includes the reference.
 14. The system of claim 11,wherein the user data comprises compatibility data associated with auser, and wherein the compatibility data identifies dimensions of anentity associated with the user.
 15. The system of claim 11, wherein theuser data comprises preferences associated with a shopping service,shopping list data, and orientation data that defines a geographiclocation of the user device and an orientation of the user device at thegeographic location.
 16. The system of claim 11, wherein the shoppingdata comprises history information that identifies a purchase historyassociated with a geographic location, and wherein the historyinformation is used to identify the offer source.
 17. A computer storagemedium having computer-executable instructions stored thereon that, whenexecuted by a processor, cause the processor to perform operationscomprising: receiving, from a requestor, a request for display data,analyzing shopping data to identify an offer source, the shopping datacomprising user data associated with the requestor, obtaining an offerfrom the offer source identified, generating display data based upon theoffer and the shopping data, and providing the display data to a userdevice, wherein the display data identifies the offer.
 18. The computerstorage medium of claim 17, wherein the user data comprises object datathat identifies an object associated with an interaction at the userdevice, wherein the interaction comprises displaying an augmentedreality display that includes a reference to the object, and wherein thedisplay data comprises a user interface element comprising a virtualshelf that includes the reference.
 19. The computer storage medium ofclaim 17, wherein the user data comprises compatibility data associatedwith a user, and wherein the compatibility data identifies dimensions ofan entity associated with the user.
 20. The computer storage medium ofclaim 17, wherein the user data comprises preferences associated with ashopping service, shopping list data, compatibility data associated withthe user device, and orientation data that defines a geographic locationof the user device and an orientation of the user device at thegeographic location.